1. 程式人生 > >mapreduce程式在yarn上執行的流程

mapreduce程式在yarn上執行的流程

自己學習mapreduce的一點簡單的心得

1.當我們在準備在yarn上執行一個mapreduce程式時,job.waitForCompletion()就會去Resource Manager發出一個請求,請求執行一個m r程式;

2.hdfs在獲得這個請求之後,會去分配一個jobid和一個job資源提交的路徑;

3.接下來就是準備向HDFS提交所需要的資源,分別是所需要的jar包以及計算切片後得到的切片資訊的list資訊;

4.準備好資源後,告知R M,向其申請一個容器來執行MRAPPMaster程序;

5.MRAPPMaster在得到請求後,會發佈一個建立相應容器的任務,告訴相應的nodemanager,讓其建立相應的容器;

6.建立好容器之後,nodemanager會去HDFS上下載啟動MRAPPMaster需要的程式檔案;

7.程式檔案準備好之後,hdfs會發送一個啟動MRAPPMaster的shell命令,然後預先建立了MRAPPMaster容器的nodemanager會執行這個shell命令;

8.此時,MRAPPMaster會去想R M請求申請若干容器用來給相應的nodemanager來啟動相應的yarnchild,這裡容器的數量取決於切片數量以及reducetask來決定;

9.接下來,相應的nodemanager就會去建立相應的容器來準備啟動yarnchild程式;

10.MRAPPMaster傳送啟動yarnchild程式的shell命令,相應準備好容器的nodemanager就會執行shell命令啟動yarnchild;

11.待到最後一個reducetask執行完畢之後,MRAPPMaster會向Resource Manager彙報job執行完畢並且退出。資源會被nodemanager回收。

下面有詳細圖解 ,只是小白的個人理解,如有不對之處,敬請賜教。