1. 程式人生 > >Hadoop on yarn執行過程

Hadoop on yarn執行過程

yarn:只做運算資源的分配和排程,不參與使用者程式內部工作,
正因為如此,我們的yarn可以成為一個通用的排程平臺,
所以,包括我們的mr程式、storm程式、spark程式都可以執行在我們的yarn叢集上

mapreduce和yarn的互動過程:

1、Client向Resource Manager請求執行一個程式
2、Resource Manager給Client返回一個jobid和一個用於提交資源的路徑
eg:hdfs://..../.stage/
3、提交job資源到指定的路徑 
eg:將一些job.xml\job.jar等檔案提交到HDFS路徑,例如:.../.stage/jobid/job.xml
                                                 .../.stage/jobid/job.jar
4、資源提交完畢返回給Resource Manager
5、Resource Manager初始化任務資訊,加入排程佇列
6、相對空閒的Node Manger領到任務
7、node manager根據任務資訊建立container 並載入第三步中提交的資原始檔
   容器中含有程式執行的資原始檔+RAM+Vcores
8、client傳送一個shell命令到nodeManager 來啟動我們的MrAppMaster 
9、Node Manager向Resource Manager請求運算節點
10、MrAppMaster根據程式碼中設定數量 啟動一定數量的maptask
11、MrAppMaster根據程式碼中設定數量 啟動一定數量的reducetask

12、全部任務處理完畢之後,向ResourceManager登出自己

因此與老的MapReduce相比:

YARN把資源管理與任務排程的工作分離開來,減少了MapReduce中Job Tracker的壓力。