原理:性能
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.它的输入数据类型和输出数据类型一致