JobGraph构建过程解析
JobGraph的创建流程
Flink在StreamGraph的基础上生成JobGraph,并将其发送到服务器端进行ExecutionGraph解析。
JobGraph生成步骤:
入口方法:StreamingJobGraphGenerator.createJobGraph()
设置启动模式:默认使用ScheduleMode.EAGER模式,所有节点同时启动。
生成节点哈希ID:使用StreamGraphHasher为每个节点生成唯一哈希ID。
处理节点链(Operator Chains):
遍历节点,识别出每个链的头节点。
将非头节点的配置合并到头节点,并将头节点与自身的出边连接。
无法进行链式操作的节点将被视为独立的JobVertex。
设置物理边(Edges):定义节点间的数据传输关系。
配置Slot共享组:优化资源分配,允许任务共享Slot。
核心方法解析:
setChaining(): 负责处理节点链,将连续操作合并为单个JobVertex,以提高执行效率。
setPhysicalEdges(): 建立节点之间的连接,定义数据流向。
setSlotSharingGroup(): 配置Slot共享,实现资源优化。
通过以上步骤,Flink将逻辑执行计划转换为JobGraph,为后续的作业执行做好准备。
flink
3
2024-04-28