MapReduce 是一種分布式計算框架,用于處理和生成大規模數據集。它將任務分為兩個主要階段:Map 階段和 Reduce 階段。開發人員可以使用存儲在 HDFS 中的數據,編寫 Hadoop 的 MapReduce 任務,從而實現并行處理1。
MapReduce 的工作原理
Map 階段: 輸入:Map 階段接收輸入數據,通常是鍵值對(key-value pairs)。 處理:Map 函數對輸入數據進行處理,生成中間結果。 輸出:Map 函數的輸出是新的鍵值對,這些中間結果將傳遞給 Reduce 階段。
Shuffle 階段: 分區:將 Map 階段的輸出數據進行分區,每個分區對應一個 Reduce 任務。 排序:對每個分區內的數據按鍵進行排序。 合并:將相同鍵的值合并在一起,準備傳遞給 Reduce 階段。
Reduce 階段: 輸入:Reduce 階段接收 Shuffle 階段處理后的數據。 處理:Reduce 函數對相同鍵的值進行合并計算,生成最終結果。 輸出:Reduce 函數的輸出是最終結果,通常存儲在 HDFS 中。