MapReduce執行流程

2021-10-06 09:54:58 字數 1388 閱讀 7733

mapreducer工作流程圖:

mapreducer工作流程:

------------------------------------------------reducer shuffle—start--------------------------------

6.reducer shuffle啟動後會到不同的map結果檔案中拉取相同區號的結果檔案,再合併這些來自不同map的結果檔案,再將這些檔案合併(歸併演算法),產生的大檔案是分割槽且排序且分好組了的,分組呼叫預設的groupingcomparator元件。

7.reducer把拉取的所有map輸出檔案合併完成之後就會開始讀取檔案,將讀入的內容以的形式輸入到我們使用者自定義的reducer處理邏輯中。

------------------------------------------------reducer shuffle—end--------------------------------

------------------------------------------------reducer --階段開始------------------------------------

8.自定義的reducer進行處理。

9.使用者邏輯完成之後以的形式呼叫outputformat元件輸出到hdfs檔案系統中去儲存。

總結 :

map shuffle 環形緩衝區(預設大小100m 閾值是80%) 合併 排序 分割槽 對map處理之後的資料再處理combiner中。

combiner : 在map端計算之後,子節點上還可以進行計算,這個計算叫combiner 。

reducer shffule 在緩衝中合併排序 緩衝沒有固定值 處理完成會提供給reducer。

splits : map端的輸入單位,對應檔案的block,如果最後乙個block的大小小於blocksize的10%,把最後乙個block合併到上乙個,形成乙個split。

map task : map端的計算是並行的,每乙個並行任務交乙個maptask。maptask的數量由split的數量決定。所以map的輸出對應task的數量。

reduce task : reduce端的task是以partition(分割槽)的個數決定。

【只有在指定分割槽個數 > 1的情況下會觸發分割槽】,如果預設或分割槽個數是1,reducetask的個數是1;如果分割槽大於1,也就是reducetask的數量大於1,輸出的檔案個數會大於1。reducetask的個數如果大於1,則一般應和patition的個數相同,reduce端的輸出檔案個數也和patition的個數相同。

mapreduce : 預設提供了乙個分割槽類,hashpartitioner。

MapReduce執行流程

mapreduce的大體流程是這樣的,如圖所示 由可以看到mapreduce執行下來主要包含這樣幾個步驟 1.首先對輸入資料來源進行切片 2.master排程worker執行map任務 3.worker讀取輸入源片段 4.worker執行map任務,將任務輸出儲存在本地 5.master排程work...

MapReduce執行流程

1.客戶端提交作業給yarn集群,rm接受客戶端所提交的作業。2.rm根據作業所要處理的檔案來決定map任務在哪些節點上執行,然後確定reduce任務在哪些節點 nn 上執行。3.rm分配map任務和reduce任務到相應的節點上。4.map任務開始執行,將執行結果臨時儲存到本地 執行過map任務的...

MapReduce作業執行流程

一.mapreduce作業執行流程 根據原始碼分析作業的提交流程時序圖如下 mr的作業流程圖 1.在客戶端啟動乙個作業。2.通過jobclient向jobtracker請求乙個job id和資源檔案存放路徑。3.將執行作業所需要的資源檔案複製到hdfs上,包括mapreduce程式打包的jar檔案 ...