码迷,mamicode.com
首页 > 其他好文 > 详细

[MapReduce_5] MapReduce 中的 Combiner 组件应用

时间:2018-11-06 00:54:47      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:添加   targe   table   自己的   cep   inter   平均值   mat   .com   


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 组件应用

标签:添加   targe   table   自己的   cep   inter   平均值   mat   .com   

原文地址:https://www.cnblogs.com/share23/p/9779568.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!