本章節為您介紹MapReduce的基本概念。
Map/Reduce
Map和Reduce分別支援對應的map/reduce方法、setup方法及cleanup方法。setup方法在map/reduce方法之前調用,每個Worker調用且僅調用一次。
cleanup方法在map/reduce方法之後調用,每個Worker調用且僅調用一次。
相關的使用樣本請參見樣本程式。
排序
支援將Map輸出的key record中的某幾列作為排序(Sort)列,不支援您自訂的比較子(comparator)。您可以在排序列中選擇某幾列作為Group列,不支援您自訂的Group比較子。Sort列一般用來對您的資料進行排序,而Group列一般用來進行二次排序。
相關的使用樣本請參見二次排序原始碼。
雜湊
支援設定雜湊(partition)列及使用者自訂雜湊函數(partitioner)。雜湊列的使用優先順序高於自訂雜湊函數。
雜湊函數用於將Map端的輸出資料按照雜湊邏輯分配到不同的Reduce Worker上。
歸併
歸併(Combiner)函數將Shuffle階段相鄰的Record進行歸併。您可以根據不同的商務邏輯選擇是否使用歸併函數。
歸併函數是MapReduce計算架構的一種最佳化,通常情況下,Combiner的邏輯與Reduce相同。當Map輸出資料後,架構會在Map端對相同key值的資料進行本地的歸併操作。
相關的使用樣本請參見樣本程式。