1. 程式人生 > >Flink1.6系列之—Flink on yarn流程詳解

Flink1.6系列之—Flink on yarn流程詳解

端口 準備 -a 根據 images mas info 使用 臨時

本篇我們介紹下,Flink在YARN上運行流程:

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

  1. 當開始一個新的Flink yarn 會話時,客戶端首先檢查所請求的資源(containers和內存)是否可用。如果資源夠用,之後,上傳一個jar包,包含Flink和HDFS的配置。
  2. 客戶端向yarn resource manager發送請求,申請一個yarn container去啟動ApplicationMaster。
  3. yarn resource manager會在nodemanager上分配一個container,去啟動ApplicationMaster
  4. yarn nodemanager會將配置文件和jar包下載到對應的container中,進行container容器的初始化。
  5. 初始化完成後,ApplicationMaster構建完成。ApplicationMaster會為TaskManagers生成新的Flink配置文件(使得TaskManagers根據配置文件去連接到JobManager),配置文件會上傳到HDFS。
  6. ApplicationMaster開始為該Flink應用的TaskManagers分配containers,這個過程會從HDFS上下載jar和配置文件(此處的配置文件是AM修改過的,包含了JobManager的一些信息,比如說JobManager的地址)
  7. 一旦上面的步驟完成,Flink已經建立並準備好接受jobs。

註意事項:

  • 客戶端:這裏的客戶端就是用戶提交Flink應用的節點。
  • ApplicationMaster和JobManager運行同一個container中;因此ApplicationMaster,生成新的配置文件時,就知道JobManager的信息,比如說JobManager的地址。
  • AM:也就是ApplicationMaster。ApplicationMaster container還為Flink的web界面提供服務。
  • YARN中代碼使用的端口都是臨時的,這就使得用戶可以並行執行多個FLink會話。

Flink1.6系列之—Flink on yarn流程詳解