MapReduce由兩個階段組成,map階段和reduce階段:
map階段:
1.從hdfs上讀取文件,將文件的每一行解析成一個<K,V>對。
2.對解析後的<K,V>對執行用戶實現的map函數。
3.對2所得結果進行分區。分區過程將在接下來學習Partitioner
4.對不同分區中的數據進行排序和分組。
5.(可選)對每個組的數據進行本地合併。該過程接下來學習Combiner
reduce過程:
1.對於map階段的輸出結果,通過網絡發送到reduce節點。
2.對map階段的多個map節點的輸出進行合併、排序,執行用戶實現的reduce函數。
3.將輸出結果寫到hdfs上。