combiner是运行在本地的,reduce是收集全部的,比如一个文件很大1G,比如一个文件很大1G,如果你的集群是5台双核的,如果你的集群是5台双核的,这样这16个块会被分到这10个块里面,相当于要2轮,假设是1、2分给1号机,3、4分给2号机,这样1、2求和完了之后会在1号机上运行一次combiner,3、4完了再2号机上运行一次combiner,所有的combiner运行完了,所有的数据会汇集到reduce上做最终处理。
输入(数据摘自互联网):
data1:

data2:

程序源代码:
package org.apache.hadoop.examples;
import java.io.IOException;
import java.util.StringTokenizer;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.DoubleWritable;
import org.apache.hadoop.io.Text;
import org.a

本文介绍如何利用Hadoop的Combiner和Reducer组件来计算大规模数据集的平均值。通过Combiner在本地进行部分求和,减少数据传输,提高效率。在Reduce阶段,所有数据会集中处理,得出最终的平均值。
最低0.47元/天 解锁文章
2069

被折叠的 条评论
为什么被折叠?



