MapReduce框架原理

2021-09-29 07:12:49 字數 1037 閱讀 1827

mapreduce工作流程

reduce端:

2)流程詳解

上面的流程是整個mapreduce最全工作流程,但是shuffle過程只是從第7步開始到第15步結束,具體shuffle過程詳解,如下:1)

maptask

收集我們的

map()

方法輸出的

kv對,放到記憶體緩衝區中 2

)從記憶體緩衝區不斷溢位本地磁碟檔案,可能會溢位多個檔案 3

)多個溢位檔案會被合併成大的溢位檔案 4

)在溢位過程中,及合併的過程中,都要呼叫

partitioner

進行分割槽和針對

key進行排序 5

)reducetask

根據自己的分割槽號,去各個

maptask

機器上取相應的結果分割槽資料 6

)reducetask

會取到同乙個分割槽的來自不同

maptask

的結果檔案,

reducetask

會將這些檔案再進行合併(歸併排序) 7

)合併成大檔案後,

shuffle

的過程也就結束了,後面進入

reducetask

的邏輯運算過程(從檔案中取出乙個乙個的鍵值對

group

,呼叫使用者自定義的

reduce()

方法)

3)注意

shuffle

中的緩衝區大小會影響到

mapreduce

程式的執行效率,原則上說,緩衝區越大,磁碟

io的次數越少,執行速度就越快。

緩衝區的大小可以通過引數調整,引數:

io.sort.mb 

預設100m。

MapReduce 框架原理

1.1 自定義bean物件實現序列化介面 乙個job在map階段並行度由客戶端在提交job時的切片數決定 每乙個split切片分配乙個 maptask 並行例項處理 預設情況,切片大小 blocksize 示例 a.txt line1 rich learning form line2 intelli...

Mapreduce 計算框架 功能原理

1.mapreduce是乙個海量資料的計算框架 這個框架解決了以下問題 基於乙個多執行緒的模型 區別spark多程序 資料分布儲存 作業排程 容錯 機器間通訊 map 把複雜的問題分解成簡單的問題 reduce 2.mapreduce物理配置 合適的slot個數 單記map reduce個數 map...

Hadoop之MapReduce框架原理

mapreduce的資料流 1 問題引入 maptask的並行度決定map階段的任務處理併發度,進而影響到整個job的處理速度。思考 1g的資料,啟動8個maptask,可以提高集群的併發處理能力。那麼1k的資料,也啟動8個maptask,會提高集群效能嗎?maptask並行任務是否越多越好呢?哪些...