1. 程式人生 > >Flink on Yarn模式啟動流程分析

Flink on Yarn模式啟動流程分析

cin XML images ont list action -i 多個 信息

此文已由作者嶽猛授權網易雲社區發布。

歡迎訪問網易雲社區,了解更多網易技術產品運營經驗。


Flink On Yarn 架構

技術分享圖片

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。
    啟動命令:

    技術分享圖片

    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什麽的觸發)。
    啟動命令:

    技術分享圖片

    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模式啟動流程分析