其实,很容易理解,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 相反: 文件块会减小,可是性能会差一些,由于须要网络传输。继承