Board logo

标题: 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_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 **




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0