從圖中能夠看出,Yarn的客戶端須要獲取hadoop的配置信息,鏈接Yarn的ResourceManager。因此要有設置有 YARN_CONF_DIR或者HADOOP_CONF_DIR或者HADOOP_CONF_PATH,只要設置了其中一個環境變量,就會被讀取。若是讀取上述的變量失敗了,那麼將會選擇hadoop_home的環境變量,都區成功將會嘗試加載$HADOOP_HOME/etc/hadoop的配置文件。html
一、當啓動一個Flink Yarn會話時,客戶端首先會檢查本次請求的資源是否足夠。資源足夠將會上傳包含HDFS配置信息和Flink的jar包到HDFS。session
二、隨後客戶端會向Yarn發起請求,啓動applicationMaster,隨後NodeManager將會加載有配置信息和jar包,一旦完成,ApplicationMaster(AM)便啓動。app
三、當JobManager and AM 成功啓動時,他們都屬於同一個container,從而AM就能檢索到JobManager的地址。此時會生成新的Flink配置信息以便TaskManagers可以鏈接到JobManager。同時,AM也提供Flink的WEB接口。用戶可並行執行多個Flink會話。oop
四、隨後,AM將會開始爲分發從HDFS中下載的jar以及配置文件的container給TaskMangers.完成後Fink就徹底啓動並等待接收提交的job.spa
啓動Flink cluster on YARN htm
./bin/yarn-session.sh -n 1 -jm 1024 -tm 4096
能夠看到啓動了1個TaskManager 給jm與tm分配的資源數blog
將Flink的配置與jar包上傳至HDFS接口
提交於Application Masterhadoop
啓動完畢後,就可提交任務。資源