JobManager Leader 选举
首先flink会依据配置获取RecoveryMode,RecoveryMode一共两两种:STANDALONE和ZOOKEEPER。
- 如果用户配置的是STANDALONE,会直接去配置中获取JobManager的地址
- 如果用户配置的是ZOOKEEPER,flink会首先尝试连接zookeeper,利用zookeeper的leadder选举服务发现leader节点的地址和当前的sessionid
客户端JobGraph的提交
- 启动JobClientActor用来和JobManager交互
- 启动LeaderRetrievalService获取JobManager的地址
- 上传用户 jar包
- 提交SubmitJob命令,等待程序执行
JobManager执行计划生成
JobManager启动逻辑
- 配置Akka并生成ActorSystem
- 初始化ZooKeeperLeaderRetrievalService,JobManager在启动的时候会以LeaderRetrievalListener的身份将自己注
- 册进来,该service负责监听最新的leader信息,当发生改变时通知即所有 listener【所有的JobManager】
- 启动ResourceManager
执行计划ExecutionGraph的生成
flink的运行时执行计划为ExecutionGraph,ExecutionGraph 时应之前的JobGraph,一个ExecutionGraph包含多个ExecutionJobVertex节点,JobGraph的JobVertex,每ExecutionJobVertex 节点的并发子task对应一个ExecutionVertex,InputChannelDeploymentDescriptorn,具体如下图所示: