Flink on Yarn启动流程分析-1

总体架构:

Flink on Yarn启动流程分析-1_第1张图片

 

源码分析要点:

  • 1.客户端执行启动脚本;
  • 2.启动AppMaster;
  • 3.启动Resource Manager & JobManager;
  • 4.启动Node Manager & TaskManager;
  • 5.集群启动完毕后与客户端的交互。

今天先分析第一部分

------------------------------------1.客户端执行启动脚本---------------------------------------

/bin路径下的yarn-session.sh

Flink on Yarn启动流程分析-1_第2张图片

run()方法里主要有下面几个功能:

1.解析命令行参数;

2.封装成一个clusterDescriptor;

3.启动集群;

4.启动成功后与客户端的交互。

Flink on Yarn启动流程分析-1_第3张图片

1.获取yarnClusterDescriptor;

FlinkYarnSessionCli :: createClusterDescriptor

a.加载命令行配置;

FlinkYarnSessionCli : :getClusterSpecification

把命令行的这些配置参数" zookeeperNamespace, jmMemory, tmMemory, slots"封装到yarnClusterDescriptor

b.创建yarnClusterDescriptor;

FlinkYarnSessionCli :: createDescriptor

FlinkYarnSessionCli :: getClusterDescriptor

创建一个yarnClient线程,并启动

最终返回YarnClusterDescriptor 对象

Flink on Yarn启动流程分析-1_第4张图片

 

2.部署集群

AbstractYarnClusterDescriptor :: deploySessionCluster

Flink on Yarn启动流程分析-1_第5张图片

启动集群的时候,通过getYarnSessionClusterEntryPoint()传进去的主类,其实就是ApplicationMaster的主类,这个不同模式下是启动不同的主类,这里主要分析的YarnApplicationMasterRunner这个类,这个算是legacy模式下的主类。

AbstractYarnClusterDescriptor :: deployInternal

 

验证配置合法性

检查User权限

检查是否准备好部署

检查yarn queue是否存在

加载动态配置

检查资源

。。。

Flink on Yarn启动流程分析-1_第6张图片

Flink on Yarn启动流程分析-1_第7张图片

接着就是启动AppMaster。

看下一篇

你可能感兴趣的:(FLINK)