概述
Combinar继承了`Reducer`, 可选过程, 在map端的实现分组(是在map端运行的reduce), 减小网络IO传输;
使用Combiner需要满足的条件
- Combiner不能影响最终计算结果
例如求平均值就不能使用Combiner
- 输出k-v类型必须与map输出一致
自定义过程
1. 继承Reducer, 重写Reduce方法
Public class MyReducer extends Reucer<Text, IntWritable, Text, IntWritable>{
@Override
protected void reduce(Text key, Iterable<IntWritable> values,Context context)
}
x
1
Public class MyReducer extends Reucer<Text, IntWritable, Text, IntWritable>{2
3
@Override
4
protected void reduce(Text key, Iterable<IntWritable> values,Context context)
5
}
2. 在Job驱动类设置
job.setCombinerClass(WordcountCombiner.class);
1
1
job.setCombinerClass(WordcountCombiner.class);
本文深入探讨了MapReduce框架中Combiner组件的功能和应用,解释了其如何在Map阶段进行局部聚合,减少网络传输负担,以及正确设置和使用Combiner的步骤。适合对大数据处理和MapReduce优化有兴趣的技术人员阅读。
864

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



