Mapreduce的job提交流程


在hadoop1.0版本以前我們的Mapreduce是被當作資源調度和計算框架來使用的,成為了hadoop運行生態圈的瓶頸,所以在hadoop2.0版本以上引入了yarn的概念,使Mapreduce完全成為分布式計算框架,而Yarn成為了分布式資源調度。雖然mapreduce處理速度很慢,IO操作會很多,不過這是我們步入Spark的必經之路,也是了解大數據生態圈不可缺少的成分。

下面就是針對job提交,yarn所做出的反應。

(我們的jar包中包括了許許多多的信息,其中重要的是:Mapper、Reducer、ApplicationMaster)

1.將job提交給ResourcemManager(后面用RM代替),RM會給他分配一個jobID

2.RM會給客戶端返回一個JobID和路徑的信息

3.客戶端根據這個信息,將jar包存儲在HDFS中

4.提交job給RM,RM中存在FIFO機制,如果前面有正在運行的Job,則放入FIFO進行等待,直到輪到此Job

5.申請開啟AM(ApplicationMaster),RM會找到一個NM(NodeManager)給他continer,用來啟動AM,ND開啟AM(其實5和6之間存在一種AM向RM注冊的行為,這里不做太多講解,只需懂基本流程即可)

6. AM向RM申請Task的執行資源,用來運行Task

7.RM根據AM的信息和每個節點的資源利用情況進行Task的資源分配

8.AM去每個Task所在的節點上通知NM去開啟此continer

(后續一點步驟:

9.task啟動會跟AM進行注冊,AM時刻監控Task的運行情況,知道收到Task運行完成為止)

以上便是Mapreduce的job提交流程。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM