Flink on Yarn模式启动流程源代码分析(1)
- UID
- 1066743
|
Flink on Yarn模式启动流程源代码分析(1)
--> 1.命令行启动yarn session
bin/yarn-session.sh -n 3 -jm 1024 -nm 1024 -st
我们去看下启动脚本
$JAVA_RUN $JVM_ARGS -classpath "$CC_CLASSPATHHADOOP_CLASSPATHHADOOP_CONF_DIRYARN_CONF_DIR" $log_setting org.apache.flink.yarn.cli.FlinkYarnSessionCli -j "$FLINK_LIB_DIR"/flink-dist*.jar "$@"复制代码
主要是用java -cp的方式启动主类** *org.apache.flink.yarn.cli.FlinkYarnSessionCli * , $@ 就是我们传入的哪些参数 " -n 3 -jm 1024 -nm 1024 -st" **。
1. FlinkYarnSessionCli 的启动流程分析
首先看下Main函数
public static void main(String[] args) {
FlinkYarnSessionCli cli = new FlinkYarnSessionCli("", ""); // no prefix for the YARN session
System.exit(cli.run(args));
}复制代码
主要是构造FlinkYarnSessionCli,然后执行其run方法,这里主要介绍主要流程的代码。
public int run(String[] args)
1.解析命令行参数
cmd = parser.parse(options, args)复制代码
2.根据命令行参数决定执行那种模式。
# 第一种,判断命令是否包含 -q复制代码
** 如: **
# 第二种,判断是否有-id参数
这里我们看下交互模式是啥样的,共有两个可选项,help和stop,如果我们敲入stop,则应用对应的所有进程会退出。
# 第三种,为正常模式
** 这里主要为构造YarnClusterDescriptor,然后调用其deploy方法启动集群 ,接着将Jobmanager和web ui地址写入到out文件中去,如果采用分离模式,则等待集群启动之后yarn session自动退出,如果不是则进入交互模式,我们可以通过交互控制这个Applitcation ** |
|
|
|
|
|