flink中jobgraph的生成逻辑,接前面的文章flink图流转之StreamGraph
今天想了一下源码分析类的文章应该是直接在源码上做注释来的直接,然后再抛开细节概括总体流程和关键点,今天这篇分析jobgraph生成的文章就以这个形式展开
- 先生成各个节点streamnode的hash值 主体代码在:
StreamGraphHasherV2.java - 设置chaining
- 找到节点中能chain和不能chain的边
- 生成相应的JobVertex节点,并设置StreamConfig(资源,名称,chain的节点),这个streamConfig是在部署期间比较重要的一个配置项,并拼接物理执行顺序,主要在connect函数
- 设置inEdges配置项
- 设置slotsharingGroup
- 配置checkpoint,这里主要设置需要发送barrier的节点即source节点
其实总结就是分两步:
- 在createChain过程中创建JobVertex
- 设置各个StreamConfig需要的信息用作生成物理执行图的时候使用
主要涉及的代码为两块,如下: