Yarn快速系列入門(2) | Yarn的運行與工作流程

本篇博文,博主爲大家介紹Yarn的運行流程。
1


一. 運行流程

2

  • 1、client向RM提交應用程序,其中包括啓動該應用的ApplicationMaster的必須信息,例如ApplicationMaster程序、啓動ApplicationMaster的命令、用戶程序等。
  • 2、ResourceManager啓動一個container用於運行ApplicationMaster。
  • 3、啓動中的ApplicationMaster向ResourceManager註冊自己,啓動成功後與RM保持心跳。
  • 4、ApplicationMaster向ResourceManager發送請求,申請相應數目的container。
  • 5、申請成功的container,由ApplicationMaster進行初始化。container的啓動信息初始化後,AM與對應的NodeManager通信,要求NM啓動container。
  • 6、NM啓動啓動container。
  • 7、container運行期間,ApplicationMaster對container進行監控。container通過RPC協議向對應的AM彙報自己的進度和狀態等信息。
  • 8、應用運行結束後,ApplicationMaster向ResourceManager註銷自己,並允許屬於它的container被收回。

二. 工作流程

3

  • (1)MR程序提交到客戶端所在的節點。
  • (2)YarnRunner向ResourceManager申請一個Application。
  • (3)RM將該應用程序的資源路徑返回給YarnRunner。
  • (4)該程序將運行所需資源提交到HDFS上。
  • (5)程序資源提交完畢後,申請運行mrAppMaster。
  • (6)RM將用戶的請求初始化成一個Task。
  • (7)其中一個NodeManager領取到Task任務。
  • (8)該NodeManager創建容器Container,併產生MRAppmaster。
  • (9)Container從HDFS上拷貝資源到本地。
  • (10)MRAppmaster向RM 申請運行MapTask資源。
  • (11)RM將運行MapTask任務分配給另外兩個NodeManager,另兩個NodeManager分別領取任務並創建容器。
  • (12)MR向兩個接收到任務的NodeManager發送程序啓動腳本,這兩個NodeManager分別啓動MapTask,MapTask對數據分區排序。
  • (13)MrAppMaster等待所有MapTask運行完畢後,向RM申請容器,運行ReduceTask。
  • (14)ReduceTask向MapTask獲取相應分區的數據。
  • (15)程序運行完畢後,MR會向RM申請註銷自己。

好了,本次關於Yarn運行流程的內容就介紹到這裏。下一篇文章將爲大家介紹Yarn 和MapReduce的作業提交全過程,敬請期待!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章