原理:性能
1.是什麼?mapreduce做業的優化優化
在map端進行一次相似於reduce的操做,這種操做稱爲Combiner繼承
2.爲何會有這種優化方式?原理
爲了減小map->reduce 傳輸的數據量。 map
3.既然Combiner相似於reduce,那麼它的輸入數據類型和輸出數據類型是什麼?數據類型
Combiner處理map的結果,combiner處理的結果是reduce的輸入。數據
那麼它的輸入數據類型就等於map端的輸出數據類型,它的輸出數據類型就等於reduce端的輸入數據類型。co
4.它是怎麼實現的呢?
Combiner就是一個reduce
Combiner實現就要繼承一個reducer
job.setCombinerClass(reducer類);
限制條件
1.不能影響map階段的數據傳送
2.它的存在與否只是影響性能
3.它的輸入數據類型和輸出數據類型一致