當前位置:成語大全網 - 書法字典 - 簡單固定洗牌機的工作原理

簡單固定洗牌機的工作原理

摘要

1)在mapreduce中,如何將Map階段處理過的數據轉移到reduce階段是mapreduce框架中最關鍵的過程,稱為shuffle;

2)洗牌:?洗牌和發牌(核心機制:數據分區、排序和緩存);

3)具體來說,將maptask輸出的處理結果數據分發到reducetask,在分發的過程中,將數據按key進行分區和排序。

洗牌結構

隨機緩存過程:

Shuffle是MR處理流程中的壹個過程,每個處理步驟都在各種map任務和reduce任務節點上完成。

2.4.3分區

如果number of reduceTask》:獲得分區的結果數,它將產生幾個空的輸出文件Part-R-000 xx;

如果1

如果reducetask的數量=1,則無論mapTask輸出多少個分區文件,最終結果都將提供給這個reduce task,並且只會生成壹個結果文件。零件-r-00000;

例如,如果自定義分區的數量是5,那麽

(1)job . setnumreducetasks(1);將正常運行,但會產生壹個輸出文件。

(2)job . setnumreducetasks(2);將報告壹個錯誤

(3)job . setnumreducetasks(6);如果大於5,程序將正常運行並生成壹個空文件。

2.4.5洗牌操作機制

2)詳細的流程說明

上述過程是整個mapreduce最完整的工作流程,但shuffle過程僅從步驟7開始,並在步驟16結束。具體洗牌過程詳述如下:

1)map task收集map()方法輸出的kv對,並將它們放入內存緩沖區。

2)本地磁盤文件不斷從內存緩沖區溢出,並且可能會溢出多個文件。

3)多個溢出文件將合並成壹個大的溢出文件。

4)在溢出和合並過程中,應調用分割器對鍵進行分組和排序。

5)根據自己的分區號,reducetask去每個maptask機器獲取相應的結果分區數據。

6)reducetask將從同壹分區中的不同maptask獲取結果文件,reduce task將再次合並這些文件(合並和排序)。

7)合並成壹個大文件後,shuffle的過程結束,然後進入reducetask的邏輯操作過程(從文件中取出壹個鍵值對組,調用自定義的reduce()方法)。

集中註意力

緩沖區中緩沖區的大小會影響mapreduce程序的執行效率。原則上,緩沖區越大,磁盤io數量越少,執行速度越快。

緩沖區的大小可以通過參數來調整:io.sort.mb?默認值為100米

合並器合並

1)組合器是MR程序中除映射器和縮減器之外的組件。

2)2)組合器組件的父類是Reducer。

3)3)組合器和減速器的區別在於其運行位置:

Combiner在maptask所在的每個節點上運行。

Reducer是接收世界上所有Mapper的輸出結果;

4)4)combiner的意義是在本地匯總每個maptask的輸出以減少網絡傳輸。

6)組合器可以應用的前提是不能影響最終的業務邏輯,組合器的輸出kv應與減速器的輸入kv類型相對應。

制圖人