Flink on Yarn模式启动流程分析

摘要:
FlinkOnYarn体系结构Paste_Image.png的前提条件是首先配置YARN _ CONF_ DIR、HADOOP_ CONF _ DIR和HADOOP_CONF_其中一个PATH用于确保Flink可以访问HDFS和YARN的RM。

此文已由作者岳猛授权网易云社区发布。

欢迎访问网易云社区,了解更多网易技术产品运营经验。


Flink On Yarn 架构

Flink on Yarn模式启动流程分析第1张

Paste_Image.png

前提条件
首先需要配置YARN_CONF_DIR, HADOOP_CONF_DIR ,HADOOP_CONF_PATH其中一个用来确保Flink能够访问HDFS和Yarn的RM。

主要启动流程

1. 启动进程

首先我们通过下面的命令行启动flink on yarn的集群
bin/yarn-session.sh -n 3 -jm 1024 -nm 1024 -st

这里将产生总共五个进程

  • ** 1个FlinkYarnSessionCli  ---> Yarn Client **

  • ** 1个YarnApplicationMasterRunner ---> AM + JobManager**

  • 3个YarnTaskManager --> TaskManager

即一个客户端+4个container,1个container启动AM,3个container启动TaskManager。

2.启动流程


  1. FlinkYarnSessionCli  启动的过程中首先会检查Yarn上有没有足够的资源去启动所需要的container,如果有,则上传一些flink的jar和配置文件到HDFS,这里主要是启动AM进程和TaskManager进程的相关依赖jar包和配置文件。

  • 2.接着yarn client会首先向RM申请一个container来     ApplicationMaster(YarnApplicationMasterRunner进程),然后RM会通知其中一个NM启动这个container,被分配到启动AM的NM会首先去HDFS上下载第一步上传的jar包和配置文件到本地,接着启动AM;在这个过程中会启动JobManager,因为JobManager和AM在同一进程里面,它会把JobManager的地址重新作为一个文件上传到HDFS上去,TaskManager在启动的过程中也会去下载这个文件获取JobManager的地址,然后与其进行通信;AM还负责Flink的web 服务,Flink里面用到的都是随机端口,这样就允许了用户能够启动多个yarn session。
    启动命令:

    Flink on Yarn模式启动流程分析第2张

    Paste_Image.png

  • 3.AM 启动完成以后,就会向AM申请container去启动TaskManager,启动的过程中也是首先从HDFS上去下载一些包含TaskManager(yarn模式的话这里就是YarnTaskManager )主类 的jar和启动过程依赖的配置文件,如JobManager地址所在的文件,然后利用java cp的方式去启动YarnTaskManager ,一旦这些准备好,就可以接受任务了。这个和spark on yarn的yarn cluster模式其实差不多,也是分为两个部分,一个是准备工人和工具(spark是启动sc的过程,flink是初始化ENV的过程),另外一个就是给工人分配具体工作(都是执行具体的操作,action什么的触发)。
    启动命令:

    Flink on Yarn模式启动流程分析第3张

    Paste_Image.png

  • 进程信息

    • ** FlinkYarnSessionCli **
      /home/hadoop/ym/jdk1.8.0_101/bin/java -Xmx512m -classpath /home/hadoop/ym/flink-1.1.3/lib/flink-dist_2.10-1.1.3.jar:/home/hadoop/ym/flink-1.1.3/lib/flink-python_2.10-1.1.3.jar:/home/hadoop/ym/flink-1.1.3/lib/log4j-1.2.17.jar:/home/hadoop/ym/flink-1.1.3/lib/slf4j-log4j12-1.7.7.jar::/home/hadoop/ym/hadoop-2.7.1/etc/hadoop: -Dlog.file=/home/hadoop/ym/flink-1.1.3/log/flink-xxxuser-yarn-session-db-180.photo.163.org.log -Dlog4j.configuration=file:/home/hadoop/ym/flink-1.1.3/conf/log4j-yarn-session.properties -Dlogback.configurationFile=file:/home/hadoop/ym/flink-1.1.3/conf/logback-yarn.xml org.apache.flink.yarn.cli.FlinkYarnSessionCli -j /home/hadoop/ym/flink-1.1.3/lib/flink-dist_2.10-1.1.3.jar -n 3 -jm 1024 -nm 1024 -st
      ** YarnApplicationMasterRunner **
      /home/hadoop/ym/jdk1.8.0_101/bin/java -Xmx424M -Dlog.file=/home/hadoop/ym/hadoop-2.7.1/hadoop/nm/application_1480493133223_0009/container_1480493133223_0009_01_000001/jobmanager.log -Dlogback.configurationFile=file:logback.xml -Dlog4j.configuration=file:log4j.properties org.apache.flink.yarn.YarnApplicationMasterRunner
      **个YarnTaskManager **
      /home/hadoop/ym/jdk1.8.0_101/bin/java -Xms424m -Xmx424m -XX:MaxDirectMemorySize=424m -Dlog.file=/home/hadoop/ym/hadoop-2.7.1/hadoop/nm/application_1480493133223_0009/container_1480493133223_0009_01_000003/taskmanager.log -Dlogback.configurationFile=file:./logback.xml -Dlog4j.configuration=file:./log4j.properties org.apache.flink.yarn.YarnTaskManager --configDir .

    后面我会从源代码的角度看下启动流程



    链接:https://www.jianshu.com/p/20d5c3ad5843


    免费体验云安全(易盾)内容安全、验证码等服务

    更多网易技术、产品、运营经验分享请点击



    相关文章:
    【推荐】 【0门槛】PR稿的自我修养
    【推荐】 Hadoop分布式集群的搭建

    免责声明:文章转载自《Flink on Yarn模式启动流程分析》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

    上篇【web性能测试随笔】一、项目介绍及工具如何设计安全的用户登录功能下篇

    宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

    相关文章

    CDH搭建Hadoop分布式服务器集群(java新手小白)

    1首先对于一个java还白的小白,先理解CDH与Hadoop的关系 一、Hadoop版本选择。 Hadoop大致可分为Apache Hadoop和第三方发行第三方发行版Hadoop,考虑到Hadoop集群部署的高效,集群的稳定性, 以及后期集中的配置管理,业界多使用Cloudera公司的发行版,简称为CDH。 下面是转载的Hadoop社区版本与第三方发行版...

    Hive面试题收集 ---阿善重要

    Hive 原理 1.用户提交查询等任务给Driver。 2.编译器获得该用户的任务Plan。 3.编译器Compiler根据用户任务去MetaStore中获取需要的Hive的元数据信息。 4.编译器Compiler得到元数据信息,对任务进行编译,先将HiveQL转换为抽象语法树,然后将抽象语法树转换成查询块,将查询块转化为逻辑的查询计划,重写逻辑查询计划,...

    hadoop yarn ui applications list 研究

    Yarn提供的web界面可以看到applications历史数据,Yarn Web UI的列表数据如图: 这部分数据的展现方式是前台分页,意思就是比如有2w的历史数据,将一次全部加载,第一次非常慢,后续操作很快。 列表数据最终调用到org.apache.hadoop.yarn.server.resourcemanager.webapp.AppsBlock...

    更改hadoop集群yarn的webui中的开始时间和结束时间为本地时间

      yarn集群的webui地址为:http://rm:8088   执行任务后,任务的开始时间和结束时间都是utc时间,查看很不方便。   查找相关资料发现hadoop有补丁包,补丁地址:https://issues.apache.org/jira/browse/YARN-1998   补丁内容为: Index: hadoop-yarn-project/...

    使用root配置的hadoop并启动会出现报错

    1、使用root配置的hadoop并启动会出现报错 错误: Starting namenodes on [master] ERROR: Attempting to operate on hdfs namenode as rootERROR: but there is no HDFS_NAMENODE_USER defined. Aborting opera...

    hbase1.3.1安装

    下载:    hadoop@master:~$ wget https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/1.3.1/hbase-1.3.1-bin.tar.gz解压到/opt/Hadoop,    hadoop@master:~$ sudo tar -zxvf hbase-1.3.1-bin.tar.g...