MapReduce之自定义Combiner

Posted bitbitbyte

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MapReduce之自定义Combiner相关的知识,希望对你有一定的参考价值。

概述

Combinar继承了`Reducer`, 可选过程, 在map端的实现分组(是在map端运行的reduce), 减小网络IO传输; 
使用Combiner需要满足的条件
  • Combiner不能影响最终计算结果
    例如求平均值就不能使用Combiner
    技术图片
  • 输出k-v类型必须与map输出一致

自定义过程

1. 继承Reducer, 重写Reduce方法
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驱动类设置
1
 
1
job.setCombinerClass(WordcountCombiner.class);

以上是关于MapReduce之自定义Combiner的主要内容,如果未能解决你的问题,请参考以下文章

大数据-Hadoop生态(19)-MapReduce框架原理-Combiner合并

大数据之Hadoop(MapReduce): shuffle之Combiner合并

mapreduce中加入combiner

MapReduce之自定义InputFormat

MapReduce之自定义Partitioner

MapReduce之自定义分区器Partitioner