标题:
Flink on Yarn模式启动流程源代码分析(1)
[打印本页]
作者:
look_w
时间:
2019-3-15 17:12
标题:
Flink on Yarn模式启动流程源代码分析(1)
--> 1.命令行启动yarn session
bin/yarn-session.sh -n 3 -jm 1024 -nm 1024 -st
我们去看下启动脚本
$JAVA_RUN $JVM_ARGS -classpath "$CC_CLASSPATH
HADOOP_CLASSPATH
HADOOP_CONF_DIR
YARN_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 **
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0