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

这里依次添加了 Generic、Yarn 和 Default 三种命令行客户端(后面根据 isActive()按顺序选择):

在 run()里面,进行客户端的选择:

FlinkYarnSessionCli.java => Yarn 客户端 isActive 的判断逻辑:

2.4 获取有效配置
CliFrontend.java

FlinkYarnSessionCli.java

2.5 调用用户代码的 main 方法
CliFrontend.java

ClientUtils.java

PackagedProgram.java

2.6 调用执行环境的 execute 方法
StreamExecutionEnvironment.java
