文件名称:ExecutionGraph的生成-svpwm的调制及谐波分析
文件大小:4.81MB
文件格式:PDF
更新时间:2024-07-10 12:54:42
flink
2.4 ExecutionGraph的生成 与StreamGraph和JobGraph不同,ExecutionGraph并不是在我们的客户端程序生成,而是 在服务端(JobManager处)生成的,顺便flink只维护一个JobManager。其入口代码 是 ExecutionGraphBuilder.buildGraph(...) 该方法长200多行,其中一大半是checkpoiont的相关逻辑,我们暂且略过,直接看核心方 法 executionGraph.attachJobGraph(sortedTopology) 因为ExecutionGraph事实上只是改动了JobGraph的每个节点,而没有对整个拓扑结构进行变 动,所以代码里只是挨个遍历jobVertex并进行处理: 1. for (JobVertex jobVertex : topologiallySorted) { 2. 3. if (jobVertex.isInputVertex() && !jobVertex.isStoppable()) { 4. this.isStoppable = false; 5. } 6. 7. //在这里生成ExecutionGraph的每个节点 8. //首先是进行了一堆赋值,将任务信息交给要生成的图节点,以及设定并行度等 等 9. //然后是创建本节点的IntermediateResult,根据本节点的下游节点的个数 确定创建几份 10. //最后是根据设定好的并行度创建用于执行task的ExecutionVertex 11. //如果job有设定inputsplit的话,这里还要指定inputsplits 12. ExecutionJobVertex ejv = new ExecutionJobVertex( 13. this, 14. jobVertex,