當前位置:編程學習大全網 - 源碼下載 - mapreduce工作流程

mapreduce工作流程

mapreduce工作流程如下:

1、輸入分片(input split):在進行map計算之前,mapreduce會根據輸入文件計算輸入分片(input split),每個輸入分片(input split)針對壹個map任務,輸入分片(input split)存儲的並非數據本身。

假如我們設定hdfs的塊的大小是64mb,如果我們輸入有三個文件,大小分別是3mb、65mb和127mb,那麽mapreduce會把3mb文件分為壹個輸入分片(input split),65mb則是兩個輸入分片(input split)而127mb也是兩個輸入分片(input split)。

即我們如果在map計算前做輸入分片調整,例如合並小文件,那麽就會有5個map任務將執行,而且每個map執行的數據大小不均,這個也是mapreduce優化計算的壹個關鍵點。

2、map階段:程序員編寫好的map函數了,因此map函數效率相對好控制,而且壹般map操作都是本地化操作也就是在數據存儲節點上進行。

3、combiner階段:combiner階段是程序員可以選擇的,combiner其實也是壹種reduce操作,因此我們看見WordCount類裏是用reduce進行加載的。

Combiner是壹個本地化的reduce操作,它是map運算的後續操作,主要是在map計算出中間文件前做壹個簡單的合並重復key值的操作。

4、shuffle階段:將map的輸出作為reduce的輸入的過程就是shuffle了。

5、reduce階段:和map函數壹樣也是程序員編寫的,最終結果是存儲在hdfs上的。

  • 上一篇:以太坊的源代碼
  • 下一篇:法院拍賣房產第壹次流拍與第二次拍賣間隔多長時間
  • copyright 2024編程學習大全網