Flink 源码(五):Flink 环境准备及提交流程(二)创建 Yarn 客户端应用程序

2.3 选择创建哪种类型的客户端

CliFrontend.java
Flink 源码(五):Flink 环境准备及提交流程(二)创建 Yarn 客户端应用程序
这里依次添加了 Generic、Yarn 和 Default 三种命令行客户端(后面根据 isActive()按顺序选择):
Flink 源码(五):Flink 环境准备及提交流程(二)创建 Yarn 客户端应用程序

 Flink 源码(五):Flink 环境准备及提交流程(二)创建 Yarn 客户端应用程序

在 run()里面,进行客户端的选择:
Flink 源码(五):Flink 环境准备及提交流程(二)创建 Yarn 客户端应用程序

 Flink 源码(五):Flink 环境准备及提交流程(二)创建 Yarn 客户端应用程序

FlinkYarnSessionCli.java => Yarn 客户端 isActive 的判断逻辑:
Flink 源码(五):Flink 环境准备及提交流程(二)创建 Yarn 客户端应用程序

2.4 获取有效配置

CliFrontend.java
Flink 源码(五):Flink 环境准备及提交流程(二)创建 Yarn 客户端应用程序

 Flink 源码(五):Flink 环境准备及提交流程(二)创建 Yarn 客户端应用程序

 Flink 源码(五):Flink 环境准备及提交流程(二)创建 Yarn 客户端应用程序

FlinkYarnSessionCli.java
Flink 源码(五):Flink 环境准备及提交流程(二)创建 Yarn 客户端应用程序

 Flink 源码(五):Flink 环境准备及提交流程(二)创建 Yarn 客户端应用程序

 Flink 源码(五):Flink 环境准备及提交流程(二)创建 Yarn 客户端应用程序

 Flink 源码(五):Flink 环境准备及提交流程(二)创建 Yarn 客户端应用程序

2.5 调用用户代码的 main 方法
CliFrontend.java 
Flink 源码(五):Flink 环境准备及提交流程(二)创建 Yarn 客户端应用程序

 Flink 源码(五):Flink 环境准备及提交流程(二)创建 Yarn 客户端应用程序

ClientUtils.java
Flink 源码(五):Flink 环境准备及提交流程(二)创建 Yarn 客户端应用程序

 Flink 源码(五):Flink 环境准备及提交流程(二)创建 Yarn 客户端应用程序

 Flink 源码(五):Flink 环境准备及提交流程(二)创建 Yarn 客户端应用程序

PackagedProgram.java
Flink 源码(五):Flink 环境准备及提交流程(二)创建 Yarn 客户端应用程序
2.6 调用执行环境的 execute 方法
StreamExecutionEnvironment.java
Flink 源码(五):Flink 环境准备及提交流程(二)创建 Yarn 客户端应用程序

 Flink 源码(五):Flink 环境准备及提交流程(二)创建 Yarn 客户端应用程序

Flink 源码(五):Flink 环境准备及提交流程(二)创建 Yarn 客户端应用程序

Flink 源码(五):Flink 环境准备及提交流程(二)创建 Yarn 客户端应用程序