MapReduce的整體流程、及shuffle機制
阿新 • • 發佈:2018-12-08
MapReduce的整體流程
1、待處理資料
2、提交客戶端submit()
3、提交資訊切片----hadoop jar wc.jar
4、計算出maptask數量----(nodemanger開闢maptask)
5、使用TextInputFormat讀待處理資料----RecordReader
6、context.write()原始碼中用InputOutputContext向環形緩衝區寫資料----預設分割槽和排序 預設為100M,超過80%發生溢寫
7、歸併排序
8、下載到reduceTask本地磁碟
9、合併檔案,歸併排序
10、一次讀取一組
11、預設TextOutputFormat----RecordWrite
shuffle機制(map之後,reduce之前)
1、寫入資料到喚醒緩衝區,預設100M,超過80%,發生溢寫
2、第一次溢寫,
3、進行分割槽
4、進行排序
5、合併,----Combiner可選操作,合併是區與裡面發生排序就會觸發
6、歸併----合併是每個區內的合併,歸併是區與區之間的合併
7、輸出,context()寫磁碟
8、拷貝
9、記憶體不夠益處到磁碟
10、歸併排序
11、按照相同的key分組