MapReduce處理流程

2022-05-14 11:40:11 字數 1447 閱讀 9684

mapreduce是hadoop2.x的乙個計算框架,利用分治的思想,將乙個計算量很大的作業分給很多個任務,每個任務完成其中的一小部分,然後再將結果合併到一起。將任務分開處理的過程為map階段,將每個小任務的結果合併到一起的過程為reduce階段。下面先從巨集觀上介紹一下客戶端提交乙個作業時,hadoop2.x各個元件之間的聯絡及處理流程。然後我們再具體看看mapreduce計算框架在執行乙個作業時,做了些什麼。

yarn是hadoop2.x框架下的資源管理系統,其組成部分為:

1)全域性資源管理器(global resource manager):整個系統的資源管理和調配。

2)節點管理器(node manager)(每個節點都有乙個)負責任務的啟動、配置及其資源的監控

4)排程器(scheduler)(在資源管理器裡)

5)容器(container):一部分cpu和記憶體組成乙個容器,最為資源使用,乙個應用程式執行在一組容器中。

在了解了各個元件的功能之後,借助下圖,我們看一下提交乙個作業的流程:

1)客戶端向資源管理器提交作業程式,作業程式的型別決定了使用哪種應用程式管理器(mapreduce、storm、tez...)

2)資源管理器協調資源,在乙個節點上獲取乙個執行應用程式管理器例項的容器

4)應用程式管理器通過資源請求與資源管理器協商資源,包括該容器所在的節點和該容器的詳細說明(cpu核數量和記憶體大小)

5)和 6)應用程式管理器在乙個節點上或者多個節點上執行其map task和reduce task

7)在容器中執行的應用程式向應用程式管理器匯報執行度

8)應用程式執行完畢,應用程式管理器就會從資源管理器中取消註冊,作業占用的資源會釋放到系統中

mapreduce總的可以分為map階段、shuffle階段和reduce階段。

除了傳輸之外,在讀取過程中,還需要做乙個轉換過程,將資料轉換為鍵值對的形式(mapreduce處理的輸入必須為鍵值對的形式),這個過程通過inputformat完成(預設為textinputformat)

3)partitioner

4)combiner(這一步是可選的)

根據自己寫的reduce程式對資料進行處理(如wordcount中將每個單詞出現的次數加起來得到總和)

2)將處理結果輸出到hdfs

通過outputformat完成(預設是textoutputformat)

通過對hadoop2.x框架的處理流程和mapreduce計算框架的處理流程的梳理,可以在進行程式編寫時有乙個更清楚的認識,下一步應該具體做些什麼。

參考:《hadoop權威指南》

《hadoop技術內幕》

mapreduce處理流程

wordcount的處理過程來進行演示mapreduce處理流程如下圖 1.輸入分片 input split 在進行map計算之前,mapreduce會根據輸入檔案計算輸入分片 input split 每個輸入分片 input split 針對乙個map任務,輸入分片 input split 儲存的...

MapReduce處理流程

1 把輸出目錄下檔案按照一定的標準進行邏輯切片,形成切片規劃 預設為,split size block size 128m。每乙個切片由乙個maptask處理 2 textinputformat對切片中的資料進行一行一行的讀取,把每一行文字內容解析成鍵 值對。key是每一行的起始位置,value是本...

Mapreduce作業的處理流程

按照時間順序包括 輸入分片 input split map階段 combiner階段 shuffle階段和 reduce階段 輸入分片 input split 在進行map計算之前,mapreduce會根據輸入檔案計算輸入分片 input split 每個輸入分片 input split 針對乙個m...