IT评测·应用市场-qidao123.com技术社区
标题:
【Flink运行时架构】核心组件
[打印本页]
作者:
三尺非寒
时间:
2025-4-16 21:35
标题:
【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用于分配使命的调用。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/)
Powered by Discuz! X3.4