Hadoop提交作業流程


一 、需要知道的內容

1.ResourceManager ------>yarn的老大
2.NodeManager        ------>yarn的小弟
3.ResourceManager調度器   a.默認調度器------>先進先出FIFO
                               b.公平調度器------>每個任務都有執行的機會
......
4.心跳機制                 ------>NodeManager可通過心跳機制將節點健康狀況實時匯報給ResourceManager,而ResourceManager則會    根據每個NodeManager的健康狀況適當調整分配的任務數目。當NodeManager認為自己的健康狀況“欠    佳”時,可讓ResourceManager不再分配任務,待健康狀況好轉時,再分配新任務。

5.NodeManager子進程------>獨立於NodeManager,不在NodeManager內部

 

二 、Hadoop工作流程:

1.Client中,客戶端提交一個mr的jar包給JobClient(提交方式:hadoop jar ...)

2.JobClient持有ResourceManager的一個代理對象,它向ResourceManager發送一個RPC請求,告訴ResourceManager作業開始,
然后ResourceManager返回一個JobID和一個存放jar包的路徑給Client

3.Client將得到的jar包的路徑作為前綴,JobID作為后綴(path = hdfs上的地址 + jobId) 拼接成一個新的hdfs的路徑,然后Client通過FileSystem向hdfs中存放jar包,默認存放10份
(NameNode和DateNode等操作)

4.開始提交任務,Client將作業的描述信息(JobID和拼接后的存放jar包的路徑等)RPC返回給ResourceManager

5.ResourceManager進行初始化任務,然后放到一個調度器中

6.ResourceManager讀取HDFS上的要處理的文件,開始計算輸入分片,每一個分片對應一個MapperTask,根據數據量確定起多少個mapper,多少個reducer

7.NodeManager 通過心跳機制向ResourceManager領取任務(任務的描述信息)

8.領取到任務的NodeManager去Hdfs上下載jar包,配置文件等

9.NodeManager啟動相應的子進程yarnchild,運行mapreduce,運行maptask或者reducetask

10.map從hdfs中讀取數據,然后傳給reduce,reduce將輸出的數據給回hdfs

--------------------- 本文來自 小虹塵 的CSDN 博客 ,全文地址請點擊:https://blog.csdn.net/hongchenlingtian/article/details/53524705?utm_source=copy 


免責聲明!

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



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