JobGraph
当前话题为您枚举了最新的 JobGraph。在这里,您可以轻松访问广泛的教程、示例代码和实用工具,帮助您有效地学习和应用这些核心编程技术。查看页面下方的资源列表,快速下载您需要的资料。我们的资源覆盖从基础到高级的各种主题,无论您是初学者还是有经验的开发者,都能找到有价值的信息。
JobGraph生成机制解析
Flink 在生成 StreamGraph 后,会根据其生成 JobGraph,并将其发送至服务器端进行 ExecutionGraph 的解析。
JobGraph 的生成入口方法为 StreamingJobGraphGenerator.createJobGraph()。
源码解析:
设置启动模式: 将启动模式设置为所有节点在开始时立即启动 (ScheduleMode.EAGER)。
生成节点哈希 ID: 为每个节点生成唯一的哈希 ID,用于区分节点。
生成兼容性哈希: 为兼容性考虑,创建额外的哈希值。
生成 JobVertex 并进行链式连接: 遍历所有节点,如果是链的头节点,则生成一个 JobVertex;如果不是头节点,则将自身配置并入头节点,并将头节点与其出边相连。
设置输入边: 为 JobVertex 设置输入边,定义数据流方向。
设置 Slot 共享组: 为 JobVertex 设置 Slot 共享组,优化资源利用。
flink
6
2024-05-27
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