-
JobManager:
它扮演的是集群管理者的角色,负责调度任务、协调 checkpoints、协调故障恢复、收集 Job 的状态信息,并管理 Flink 集群中的从节点 TaskManager。 -
TaskManager:
实际负责执行计算的 Worker,在其上执行 Flink Job 的一组 Task;TaskManager 还是所在节点的管理员,它负责把该节点上的服务器信息比如内存、磁盘、任务运行情况等向 JobManager 汇报。 -
Client:
用户在提交编写好的 Flink 工程时,会先创建一个客户端再进行提交,这个客户端就是 Client
On Yarn版
- 1.Client向HDFS上传Flink的Jar包和配置
- 2.Client向Yarn ResourceManager提交任务并申请资源 - - - - 3.ResourceManager分配Container资源并启动ApplicationMaster,然后AppMaster加载Flink的Jar包和配置构建环境,启动JobManager
- 4.ApplicationMaster向ResourceManager申请工作资源,NodeManager加载Flink的Jar包和配置构建环境并启动TaskManager
- 5.TaskManager启动后向JobManager发送心跳包,并等待JobManager向其分配任务
- StreamGraph:最初的程序执行逻辑流程,也就是算子之间的前后顺序--在Client上生成
- JobGraph:将OneToOne的Operator合并为OperatorChain--在Client上生成
- ExecutionGraph:将JobGraph根据代码中设置的并行度和请求的资源进行并行化规划!--在JobManager上生成
- 物理执行图:将ExecutionGraph的并行计划,落实到具体的TaskManager上,将具体的SubTask落实到具体的TaskSlot内进行运行。
网友评论