其實,很容易理解,map 階段的 combiner和 reduce 有些類似,因此其實 map 階段是徹底能夠輸出滴。html
(Combiner是用reducer來定義的,多數的狀況下Combiner和reduce處理的是同一種邏輯,因此job.setCombinerClass()的參數能夠直接使用定義的reduce,固然也能夠單獨去定義一個有別於reduce的Combiner,繼承Reducer,寫法基本上定義reduce同樣。讓咱們看一下,加入Combiner以前的處理結果)web
紅色參考地址:http://www.01yun.com/web/20130329/286636.html網絡
可是: map 和 reduce 階段輸出有什麼區別呢?
性能
map 是分發任務的過程,那麼必然會存在不少小文件塊,spa
因此: 輸出必然文件塊多,可是性能好,由於不須要經過網絡傳輸到 reducehtm
2. 那麼 reduce 正好和 map 相反: 文件塊會減小,可是性能會差一些,由於須要網絡傳輸。繼承