[MapReduce_5] MapReduce 中的 Combiner 组件应用
Posted share23
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[MapReduce_5] MapReduce 中的 Combiner 组件应用相关的知识,希望对你有一定的参考价值。
0. 说明
Combiner 介绍 && 在 MapReduce 中的应用
1. 介绍
Combiner:
Map 端的 Reduce,有自己的使用场景
在相同 Key 过多的情况下,在 Map 端进行的预聚合,大大缓解了网络间的 K-V 全分发
Combiner 适用场景:
- 最大值
- 求和
- 最小值
Combiner 不适用平均值的计算
2. 结合 Combiner 实现 Word Count
在 [MapReduce_1] 运行 Word Count 示例程序 代码基础上在 WCApp.java 中添加了以下内容
3. 结合 Combiner 实现最高气温统计
在 [MapReduce_add_2] MapReduce 实现年度最高气温统计 代码基础上进行改进
【3.1 编写 MaxTempCombiner.java】
package hadoop.mr.combiner; import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Reducer; import java.io.IOException; /** * Combiner 类 */ public class MaxTempCombiner extends Reducer<Text, IntWritable, Text, IntWritable> { @Override protected void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException { Integer max = Integer.MIN_VALUE; // 得到最大值 for (IntWritable value : values) { max = Math.max(max, value.get()); } // 输出年份与最大温度 context.write(key, new IntWritable(max)); } }
【3.2 修改 MaxTempApp.java】
以上是关于[MapReduce_5] MapReduce 中的 Combiner 组件应用的主要内容,如果未能解决你的问题,请参考以下文章
大数据技术之_05_Hadoop学习_04_MapReduce_Hadoop企业优化(重中之重)+HDFS小文件优化方法+MapReduce扩展案例+倒排索引案例(多job串联)+TopN案例+找博客
Hadoop--07---MapReduce_02----WordCount 案例实操