下图是演示了Combiner的好处
因为我们知道Hadoop的好处在于集群中有很多小的机器,组成了一个庞大的集群,把一个大的计算任务后者说复杂的计算过程分发到了一个个小的机器上面。但是这个集群一个致命或者是不好的就是大部分会花在磁盘IO上面,如果我们把这部分时间节省了,也就加快了MR的速度,因为Map的output始终要给Reduce做input的,这部分肯定要有磁盘的IO,如果把Maper的输出控制了,这样就加快了。combinner 就是运用了这个逻辑。
思想:合并相同的Key对应的Value,其实就是一个local的reduce过程
好处:减少了Map Task数据输出量 IO
减少了MR的网路传输。
局限:只能用一部分的聚合操作上面,比如Sum,但是Average操作就不能用。