作用:在Mapper端对数据进行Combine归约处理,Combine业务逻辑与Reducer端做的完全相同。处理后的数据再传送到Reducer端,再做一次归约。这样的好处是减少了网络传输的数量。在Mapper进行归约后,数据量变小了,这样再通过网络传输时,传输时间就变短了,减少了整个作业的运行时间。(注意:Mapper端的数据仅仅是本节点处理的数据,而Reducer端处理的数据是来自于多个Mapper任务的输出。因此在Mapper不能归约的数据,在Reducer端有可能归约处理)。
不能作为标配的原因:并不是所有的归约工作都可以使用Combiner来做。比如求平均值就不能使用Combiner。因为对于平均数的归约算法不能多次调用。