[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 适用场景:

  1. 最大值
  2. 求和
  3. 最小值

 

  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 组件应用的主要内容,如果未能解决你的问题,请参考以下文章

Hadoop MapReduce

mapreduce解析执行sql流程

大数据技术之_05_Hadoop学习_04_MapReduce_Hadoop企业优化(重中之重)+HDFS小文件优化方法+MapReduce扩展案例+倒排索引案例(多job串联)+TopN案例+找博客

Hadoop--07---MapReduce_02----WordCount 案例实操

[MapReduce_8] MapReduce 中的自定义分区实现

MapReduce编程实例5