全球快资讯丨大数据Flink进阶(八):Apache Flink架构介绍
Apache Flink架构介绍
一、Flink组件栈
在Flink的整个软件架构体系中,同样遵循这分层的架构设计理念,在降低系统耦合度的同时,也为上层用户构建Flink应用提供了丰富且友好的接口。
上图是Flink基本组件栈,从上图可以看出整个Flink的架构体系可以分为三层,从下往上依次是物理部署层、Runtime 核心层、API&Libraries层。
物理部署层:该层主要涉及Flink的部署模式,目前Flink支持多种部署模式:本地Local、集群(Standalone/Yarn)、Kubernetes,Flink能够通过该层支撑不同平台的部署,用户可以根据需要来选择对应的部署模式,目前在企业中使用最多的是基于Yarn进行部署,也就是Flink On Yarn。
(资料图片)
Runtime核心层:该层主要负责对上层不同接口提供基础服务,也是Flink分布式计算框架的核心实现层,支持分布式Stream作业的执行、JobGraph到ExecutionGraph的映射转换、任务调度等,将DataStream和DataSet转成统一可执行的Task Oparator,达到在流式引擎下同时处理批量计算和流式计算的目的。
API & Libraries层:作为分布式计算框架,Flink同时提供了支撑流计算和批计算接口,未来批计算接口会被弃用,在Flink1.15 版本中批计算接口已经标记为Legacy(已过时),后续版本建议使用Flink流计算接口,基于此接口之上抽象出不同应用类型的组件库,例如:FlinkML 机器学习库、FlinkCEP 复杂事件处理库、Flink Gelly 图处理库、SQL&Table 库。DataSet API 和DataStream API 两者都提供给用户丰富的数据处理高级API,例如:Map、FlatMap操作等,同时也提供了比较底层的ProcessFunction API ,用户可以直接操作状态和时间等底层数据。这些API将在后面进行介绍。
二、Flink运行时架构
Flink整个系统主要由两个组件组成,分别为JobManager和TaskManager,Flink架构也遵循Master-Slave架构设计原则,JobManager为Master节点,TaskManager为Worker(Slave)节点。所有组件之间的通信都是借助于Akka Framework,包括任务的状态以及Checkpoint触发等信息。
Flink运行时架构如下,下面分别介绍下架构中涉及到的角色作用。
Flink Clients客户端Flink客户端负责将任务提交到集群,与JobManager构建Akka连接,然后将任务提交到JobManager,通过和JobManager之间进行交互获取任务执行状态。Flink客户端Clients不是Flink程序运行时的一部分,作用是向JobManager准备和发送dataflow,之后,客户端可以断开(detached mode)连接或者保持连接(attached mode)。客户端提交任务可以采用CLI方式或者通过使用Flink WebUI提交,也可以在应用程序中指定JobManager的RPC网络端口构建ExecutionEnvironment提交Flink应用。
JobManagerJobManager负责整个Flink集群任务的调度以及资源的管理,从客户端中获取提交的应用,然后根据集群中TaskManager上TaskSlot的使用情况,为提交的应用分配相应的TaskSlots资源并命令TaskManger启动从客户端中获取的应用。
JobManager相当于整个集群的Master节点,Flink HA 集群中可以有多个JobManager,但整个集群中有且仅有一个活跃的JobManager,其他的都是StandBy。JobManager和TaskManager之间通过Actor System进行通信,获取任务执行的情况并通过Actor System将应用的任务执行情况发送给客户端。同时在任务执行过程中,Flink JobManager会触发Checkpoints操作,每个TaskManager节点收到Checkpoint触发指令后,完成Checkpoint操作,所有的Checkpoint协调过程都是在Flink JobManager中完成。当任务完成后,Flink会将任务执行的信息反馈给客户端,并且释放掉TaskManager中的资源以供下一次提交任务使用。
JobManager由三个不同的组件组成:
ResourceManager:这里说的ResourceManager不是Yarn资源管理中的ResourceManager,而是Flink中的ResourceManager,其主要负责Flink集群资源分配、管理和回收。在Flink中这里说的资源主要是TaskManager节点上的Task Slot计算资源,Flink中每个提交的任务最终会转换成task,每个task需要发送到TaskManager 上的slot中执行(slot是资源调度最小的单位),Flink为不同的环境和资源提供者(例如:Yarn/Kubernetes和Standalone)实现了对应的ResourceManager,这些ResourceManager负责申请启动TaskManager获取Slot资源。
在Standalone集群中,集群启动会同时启动TaskManager,不支持提交任务时启动TaskManager(没有Per-Job任务提交模式),ResourceManager只能分配可用TaskManager的slots,而不支持自行启动新的TaskManager,而基于其他资源调度框架执行任务时,当ResourceManager管理对应的TaskManager没有足够的slot,会申请启动新的TaskManager进程。
DispatcherDispatcher提供了一个REST接口,用来提交Flink应用程序执行,例如CLI客户端或Flink Web UI提交的任务最终都会发送至Dispatcher组件,由Dispatcher组件对JobGraph进行分发和执行,并为每个提交的作业启动一个新的 JobMaster,它还运行 Flink WebUI 用来提供作业执行信息。
JobMasterJobMaster负责管理整个任务的生命周期,负责将Dispatcher提交上来的JobGraph转换成ExecutionGraph(执行图)结构,通过内部调度程序对ExecutionGraph执行图进行调度和执行,最终向TaskManager中提交和运行Task实例,同时监控各个Task的运行状况,直到整个作业中所有的Task都执行完毕。
JobManager和ResourceManager组件一样,JobManager组件本身也是RPC服务,具备通信能力,可以与ResourceManager进行RPC通信申请任务的计算资源,资源申请到位后,就会将对应Task任务发送到TaskManager上执行,当Flink Task任务执行完毕后,JobMaster服务会关闭,同时释放任务占用的计算资源。所以JobMaster与对应的Flink job是一一对应的。
TaskManagerTaskManager负责向整个集群提供Slot计算资源,同时管理了JobMaster提交的Task任务。TaskManager会提供JobManager从ResourceManager中申请和分配的Slot计算资源,JobMaster最终会根据分配到的Slot计算资源将Task提交到TaskManager上运行。另外,TaskManager还可缓存数据,TaskManager之间可以进行DataStream数据的交换。
一个Flink集群中至少有一个TaskManager,在TaskManager中资源调度的最小单位是 task slot ,一个TaskManger中的task Slot个数决定了当前TaskManger最高支持的并发task个数,一个task Slot中可以执行多个算子。
可以看出,Flink的任务运行其实是采用多线程的方式,这和MapReduce多JVM进程的方式有很大的区别Fink能够极大提高CPU使用效率,在多个任务和Task之间通过TaskSlot方式共享系统资源,每个TaskManager中通过管理多个TaskSlot资源池进行对资源进行有效管理。
标签:
相关文章
全球快资讯丨大数据Flink进阶(八):Apache Flink架构介绍
在Flink的整个软件架构体系中,同样遵循这分层的架构设计理念,在降低系统耦合度的同时,也为上层用户构建Flink应用提供了丰富且友好的接口。
全球头条:航空工业哈飞稳健前行 实现首季“开门红”
第一季度,哈飞深入学习贯彻党的二十大精神和全国两会精神,认真落实集团工作会精神和公司职代会部署,全体干部职工在春天里挥洒汗水、真抓实
达索系统基于系统工程的AUTOSAR设计端到端解决方案 环球微资讯
达索系统基于系统工程的AUTOSAR设计端到端解决方案达索系统的AUTOSARBuilder(简称AB)工具聚焦于RTE层以上的开发过程,对于RTE层以下的部分,达索系统希望
扬州大学130300戏剧与影视学专业考研历年真题(2021—2023)
以下真题选自《戏剧影视类专业考研历年真题(2023版)》,其收录了93所招生院校和162个影视专业的历年真题,包括70余所院校2023年的最新真题,
在长沙,逛名品 数千好物亮相名品博览会 世界视讯
华声在线3月29日讯(全媒体记者彭可心肖秀芬)今天,为期3天的2023长沙国际名品博览会(简称“品博会”)在湖南国际会展中心启幕。本届博览...
天天关注:ABLE JEANS发布中国想象全新系列「桃花源记」
牛仔半裙尽显独特设计风格,延续结构主义的哲学想象,裙身营造多层次视觉效果,运用拼接效果拿捏反叛个性。细节处的墨色面料作为点睛之笔,在
2023广州海潮宇宙音乐节门票还有吗?
2023广州海潮宇宙音乐节门票还有吗?目前,2023年4月9日门票已售罄,4月8日还有普通票480元。时间:2023年4月8日-4月9日星汇音「海」,「潮」你而
图解江铃汽车年报:第四季度单季净利润同比增104.58%
江铃汽车2022年报显示,公司主营收入301 0亿元,同比下降14 54%;归母净利润9 15亿元,同比上升59 37%;扣非净利润-2 3亿元,同比下降875 15%
安图县开展结核病防治宣传活动
为广泛宣传结核病防治知识,进一步提高知晓率,安图县大力开展结核病防治宣传活动,营造了全社会共同参与结核病防治的良好氛围。结核宣传走进
世界看热讯:沙钢永兴:绘就高质量发展“路线图”
format jpg ">沙钢永兴轧钢厂精整区域成品现场(李俊珂摄)沙钢永兴:绘就高质量发展“路线图”安阳融媒记者姚芳通讯员李俊珂人勤春来...
2023上成都新津区教师资格证认定公告(时间+对象+条件)_聚焦
2023上半年成都新津区教师资格证认定公告一、认定范围(一)未达到国家法定退休年龄,户籍或居住地(须持当地居住证且在有效期内)、就读学校所在
YouTube带来AV1格式的测试版直播方式 ,提高视频质量
随着越来越多的硬件和软件增加对AV1编码的支持,该视频编解码器看起来将取代H 264成为首选标准。随着YouTube准备支持AV1的现场直播,过渡期的
环球看热讯:青岛互联网企业公益服务品牌再升级 “e企学”讲坛开讲
半岛网3月28日讯(记者李京媛)3月28日下午,由青岛市互联网行业党委、青岛市工商联主办,青岛市中小企业公共服务中心、青岛市中小企业网络文
微软预告第二代 Surface Hub 2S 交互式远程工作白板
IT之家3月29日消息,微软今天预告了第二代SurfaceHub2S交互式远程工作白板,并表示将于今年晚些时候上市发售,将会搭载名为“TeamsRoomsonWind
南县明山头镇:“河”我一起净滩护水 共建绿色洁美家园 全球速讯
志愿者们在捡拾河滩垃圾。红网时刻通讯员张雅琴益阳报道3月22日是“世界水日”,3月22日至28日是“中国水周”。为
大S回应汪小菲败诉:判决就是给他的回应
大S回应汪小菲败诉搜狐娱乐讯27日,汪小菲晒出费用明细回应败诉一事,称“该照顾孩子的费用从学费到买草莓,买文具到剪头发,作为一个父亲...
西班牙大师赛资格赛!杜玥双线晋级,再拼一把,争取圆梦奥运|实时
首先是混双项目,杜玥今天继续和何济霆搭配出战比赛。比赛中,何济霆 杜玥遇到了很大的挑战,涉险2比1战胜对手晋级。如今,他们继续出战西班牙
天天热门:美联储理事巴尔:加强资本和流动性规则很重要
美联储理事巴尔表示,硅谷银行的利率风险模型与实际情况完全不符;硅谷银行的风险管理很糟糕,甚至没有设立首席风险官;加强资本
焦点播报:红相股份:公司预约于2023年4月27日披露2022年年度报告和2023年第一季度报告
红相股份30042703月28日在投资者关系平台上答复了投资者关心的问题投资者22年报23一季报又什么时候披露红相股份董秘您好公司预约于2023年4月27
芦笋种植时间和种植技术?
地区气候不同芦笋的种植时间也会有所不同。适合种植芦笋的气候条件是日平均温度在10-20℃之间,昼夜温差不大。通常在春季气温回升后,土壤温度
【全球播资讯】重新“染指”电视,联想真的想清楚了吗
联想本身是一家专注于PC业务的企业,虽然在PC领域拥有着全球市场优势,但是没有彩电基础,它在电视技术上的短板可不是一朝一
harukaze社的游戏-harukaze
1、有2部1 《野良和皇女和流浪猫之心》(ノラと皇女と野良猫ハート)2015今年会出短篇动画2 らぶおぶ恋愛皇帝ofLOVE!2013ps:今天开始就暂
天天消息!宝钛股份(600456)龙虎榜数据(03-28)
沪深交易所2023年03月28日公布的交易公开信息显示,宝钛股份因成为当日跌幅偏离值达7%的证券而登上龙虎榜。