好程序員大數據分享MapReduce中job的提交流程

好程序員大數據分享MapReduce中job的提交流程node

1、MapReduce的定義程序員

MapReduce是面向大數據並行處理的計算模型、框架和平臺。app

它的主要思想是:map(映射)和reduce(歸約)負載均衡

1)MapReduce是一個基於集羣的高性能並行計算平臺框架

2)MapReduce是一個並行計算與運行軟件框架性能

3)MapReduce是一個並行程序設計模型與方法學習

2、 MapReduce的主要功能:大數據

2、MapReduce的主要功能優化

1)數據劃分和計算任務調度設計

2)數據/代碼互定位

3)系統優化

4)出錯檢測和恢復

3、計算任務中job的提交流程

在學到這的時候,咱們會面臨一些問題:

1)首先面臨的問題就是數據是如何分佈的?

2)一個超大文件按照那種方式切割下來,分別丟到不一樣的機器上?

3)按照某種方式切割下來後,是如何丟到不一樣機器上去的?

4)某個機器分配到什麼任務?如何分配的?

5)拿到任務後如何解決的?

帶着這些問題,咱們就須要學習一下job的提交流程,從該流程中去尋找咱們問題的答案。

Job的具體提交流程,咱們用文字歸納以下:

一、客戶端提交job到resourcemanager(rm)。

二、rm將其放到等待隊列,返回jobid和文件路徑信息。

三、客戶端將所須要計算的資源,上傳到hdfs上(包括job信息和分片信息)的存儲路徑。

四、客戶端給rm返回一個資源準備好的信息,job放入等待隊列,告訴他能夠啓動job,等待rm進行調度。

五、rm在調度以前,申請一個資源nodemanager(nm),nm啓動container,它接收到任務到hdfs上將資源獲取到container,而後跟客戶端交互已經獲得須要計算的資源,客戶端向其發送啓動applicationmaster(am)的命令。

六、am啓動起來後,經過解析分片信息向rm申請運算資源(maptask)。

七、rm收到信息查看nm資源狀況,經過負載均衡分配所須要的機器,nm每一次心跳都會從job的描述信息查詢本身所分配到的任務,接收到任務消息的機器會從hdfs上拿取計算資源,而後跟am交互,am發送啓動maptask的命令。

八、Maptask結束後,通知am,而後釋放maptask資源,am向rm發出信息,申請reducetask的資源。

九、rm分配資源,am啓動reducetask。

十、reducetask收集maptask完成的數據,啓動reduce邏輯。執行完成後,通知am,而後釋放reducetask的資源。am通知rm。am釋放資源。

相關文章
相關標籤/搜索