Flink源码解析三之执行计划⽣成

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,具体如下图所示:
 

你可能感兴趣的:(Flink,flink,大数据)