大資料學習筆記(六)

xxiaoMinGLL發表於2018-01-29

1.Combiner

combiner階段是程式設計師可以選擇的,combiner其實也是一種reduce操作,因此我們看見WordCount類裡是用reduce進行載入的。


Combiner是mapreduce的一種優化手段,每一個map都可能會產生大量的本地輸出,Combiner的作用就是對map端的輸出先做一次合併,以減少在map和reduce節點之間的資料傳輸量,以提高網路IO效能。


在實際的Hadoop叢集操作中,我們是由多臺主機一起進行MapReduce的,
如果加入規約操作,每一臺主機會在reduce之前進行一次對本機資料的規約,
然後在通過叢集進行reduce操作,這樣就會大大節省reduce的時間,
從而加快MapReduce的處理速度


2.Partitionner

Map階段總共五個過程:


step1.3就是partitioner過程。

key到reduce的分配過程,就是partitioner規定的。

 根據業務需要,產生多個輸出檔案。
 多個reduce任務併發執行,提高整體job的執行效率。

3.Shuffle

reduce分為三個過程:

step2.1就是shuffle過程。

針對多個map任務的輸出按照不同的分割槽(Partition)通過網路複製到不同的reduce任務節點上,這個過程就稱作為Shuffle。



4.排序分組




Step1.4第四步中需要對不同分割槽中的資料進行排序和分組,預設情況按照key進行排序和分組。

預設情況按照key進行排序,數字序,字典序。預設分組是將key值相同的合併到一起,將value值作為一個集合。

可以自定義封裝一個新型別作為key值實現自定義排序或分組。

相關文章