【Flink运行时架构】组件构成

在Flink的运行架构中,有两大比较重要的组件:作业管理器(JobManager)和任务管理器(TaskManager)。

Flink的作业提交与任务处理时的系统如下图所示。

其中,客户端并不是处理系统的一部分,只是负责作业提交,在作业提交之后,可选择与JobManager断开连接。接下来,重点介绍一下JobManager和TaskManager在整个过程中所扮演的角色。

JobManager

JobManager是Flink集群中一个任务管理和调度的核心,是控制应用执行的主进程,每一个应用都应该被唯一的JM控制执行。在高可用的场景下,可能会出现多个JM,但是也只有一个正在运行的Leader节点,其余都是备用。JM又包含三个组件:JobMaster、ResourceManager、Dispatcher。

JobMaster

我们把对数据进行处理的操作统称为任务(task),多个任务按照一定的先后顺序连接起来,就构成了作业(job)。而JobMaster是负责处理单独的作业,因此JobMaster和具体的job是一一对应的。

也就是说,多个job是可以运行在一个Flink集群上的,而每一个job则都有一个自己的JobMaster。

JobMaster在接收到客户端提交的应用后,会把作业图转换成一个物理层面的数据流图,也就是执行图,它包含了所有可以并发执行的任务。JobMaster会向资源管理器发出请求,申请执行任务必要的资源,一旦获取了足够资源,就会将执行图分发到真正运行他们的TaskManager上。

ResourceManager

ResourceManager主要负责资源的分配和管理,在Flink集群中只有一个。这里的资源是指TaskManager的任务槽(slot),它包含了机器用来执行计算的一组CPU和内存。每个任务都需要被分配到一个任务槽中执行。

这里的ResourceManager其实是Flink内置的,注意和其他资源管理平台区分开,比如K8S、YARN等。

TaskManager中的任务槽都会向ResourceManager注册的,当ResourceManager没有足够的任务槽时,它可以向资源管理平台发起会话,请求提供启动TaskManager进程的容器。

Dispatcher

Dispatcher主要负责提供一个REST接口,用来与集群进行交互和管理,负责为每一个新提交的作业启动一个新的JobMaser组件,以及启动一个WebUI用于展示和监控作业执行信息。

TaskManager

每个TaskManager都包含了一定数量的任务槽,任务槽是资源调度的最小单位,其数量限制了TaskManager能够并发处理的任务数量。

TaskManager启动之后,会向ResourceManager注册它的任务槽,收到指令后,TaskManager就会将一个或者多个任务槽提供给JobMaster用于分配任务的调用。

相关推荐
EQUINOX16 小时前
【论文精读】| CLIP精读
大数据·人工智能
奈斯先生Vector7 小时前
告别工具碎片化:基于 Nano Banana 全模态 AI 聚合架构搭建“文本-图像-视频”自动化协同生产线
运维·数据库·人工智能·架构·自动化·aigc·音视频
微三云 - 廖会灵 (私域系统开发)8 小时前
消费即资产:积分增值异业联盟商业模式完整拆解(附落地逻辑、合规方案与盈利模型)
大数据·人工智能
老白说数智化升级8 小时前
从一次改善到持续进化,AI如何沉淀制造现场的运营知识?
大数据·人工智能·制造
小也说互联网8 小时前
2026年|正规靠谱外贸独立站建站渠道全景解析
大数据·外贸独立站·独立站搭建·谷歌seo优化·外贸建站·谷歌建站服务商推荐·外贸出海企业必看
只说证事9 小时前
电子商务专业考证能找到哪些工作
大数据
建筑工程企业管理系统9 小时前
erp工程项目管理系统落地价值:实现工程多项目成本精细化核算与管控
大数据·数据库·人工智能
万岳科技系统开发9 小时前
校园跑腿外卖搭建助力高校周边商家拓展线上业务
大数据·人工智能·小程序
理想家小杨总11 小时前
2026年|知名谷歌推广平台甄选:外贸独立站建站深度测评
大数据·独立站搭建·谷歌建站·国内外贸建站服务商推荐·外贸出海建站·谷歌独立站搭建·谷歌建站服务商
就是一顿骚操作11 小时前
全球 AI 大事件新闻汇总 2026-08-01
大数据·人工智能