MapReduce作業運行流程

一.MapReduce作業運行流程

      根據源碼分析作業的提交流程時序圖如下

MR的作業流程圖:


1.在客戶端啓動一個作業。

2.通過JobClient向JobTracker請求一個Job ID和資源文件存放路徑。

3.將運行作業所需要的資源文件複製到HDFS上,包括MapReduce程序打包的JAR文件、配置文件和客戶端計算所得的輸入劃分信息(通過閱讀源碼獲得分片的計算公式爲:splitSize = max(minsize,min(maxsize,blockSize)),minsize默認值是1L,maxsize默認值是2的63次方減1)。這些文件都存放在JobTracker專門爲該作業創建的文件夾中。文件夾名爲該作業的Job ID。JAR文件默認會有10個副本(mapred.submit.replication屬性控制)。

4.開始提交任務(任務的描述信息,不是jar)。
5.JobTracker進程初始化任務,JobTracker接收到作業後,將其放在一個作業隊列裏,等待作業調度器對其進行調度
6.讀取HDFS上的要處理的文件,開始計算輸入分片,每一個分片對應一個
MapperTask。

7.TaskTracker通過心跳機制向JobTracker彙報當前運行情況和資源使用情況,JobTracker根據TaskTracker的彙報情況分配不同的執行任務。
8.TaskTracker根據分配到的任務下載所需的jar,配置文件等。
9.TaskTracker啓動一個java child進程,用來執行具體的任務(MapperTask或ReducerTask)。
10.將結果寫入到HDFS當中

到此MR的作業運行流程介紹完畢。


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