辛星笔记之Hadoop权威指南第三篇combiner

来源:互联网 发布:人工智能应用场景 编辑:程序博客网 时间:2024/05/28 04:54

     集群上的可用宽带限制了MapReduce作业的数量,因此最重要的一点是尽量避免map任务和reduce任务之间的数据传输。Hadoop允许用户针对map任务的输出指定一个合并函数,有时候我们也称作combiner,它就像mapper和reducer一样。

      合并函数的输出作为reduce函数的输入,由于合并函数是一个优化方案,所以Hadoop无法确定针对map任务输出中任一条记录需要调用多少次合并函数。不管我们调用多少次合并函数,reducer的输出结果都应该一致。合并函数的规则限定了可以使用的函数类型。

     我们仍然需要reduce函数来处理不同map输出中具有相同键的记录,它能够有效的减少map和reduce之间的数据传输量,在MapReduce作业中使用combiner,是需要谨慎考虑的。

     在MapReduce程序中,合并函数是通过reducer接口来定义的,并且我们需要在JobConf中设置combiner类,这里使用的是setCombinerClass这个方法。














     

0 0