Flink 1.9源码学习05 ----Job启动JobManager端源码分析
Driver将用户代码转换成streamGraph再转换成Jobgraph后向Jobmanager端提交
JobManager启动以后会在Dispatcher.java起来RPC方法submitJob(jobGraph),用于接收来自Driver转化得到的JobGraph来启动任务
具体来看jobGraph提交到JobManager的submitJob方法
package org.apache.flink.runtime.dispatcher
--- >>>
点进去查看这个方法:
进入这个方法
运行job:
并且创建了 jobmanagerRunner,将jobGraph 变成了 executionGraph
然后接着启动 jobManagerRunner:
同时通过创建jobManagerRunner的同时它调用了:
这里主要是为了创建一个jobMaster,在jobMaster的构造方法中:
在这里它先是create传入了jobgraph然后又通过createAndRestoreExecutionGraph()方法转换得到executionGraph
这个executionGraph就可以用来调度启动任务了
具体看一下他的转化逻辑
在这里做了转换得到ExecutionGraph,
可以看到它从createExecutionGraph方法中得到了executionGraph
并且通过getCheckpointCoordinator()方法得到了一个coordinator(主要是用于周期性触发checkpoint,调用对应TaskManager的rpc生成barriers往下游发送)
继续看一下他的转化逻辑
在createExecutionGraph中通过ExecutionGraphBuilder.buildGraph()返回了一个executionGraph