大数据之Hadoop(MapReduce):Combiner合并案例实操

Posted 浊酒南街

tags:

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

1.需求

统计过程中对每一个MapTask的输出进行局部汇总,以减小网络传输量即采用Combiner功能。
(1)数据输入

banzhang ni hao
xihuan hadoop banzhang
banzhang ni hao
xihuan hadoop banzhang

(2)期望输出数据
期望:Combine输入数据多,输出时经过合并,输出数据降低。

2.需求分析

在这里插入图片描述

3.案例实操-方案一

1.增加一个WordcountCombiner类继承Reducer

package com.jinghang.mr.combiner;
import java.io.IOException;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Reducer;
public class WordcountCombiner extends Reducer<Text, IntWritable, Text, IntWritable>{
IntWritable v = new IntWritable();

	@Override
	protected void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException {

        // 1 汇总
		int sum = 0;

		for(IntWritable value :values){
			sum += value.get();
		}

		v.set(sum);

		// 2 写出
		context.write(key, v);
	}
}

2)在WordcountDriver驱动类中指定Combiner

// 指定需要使用combiner,以及用哪个类作为combiner的逻辑
job.setCombinerClass(WordcountCombiner.class);

3.案例实操-方案二

1)将WordcountReducer作为Combiner在WordcountDriver驱动类中指定

// 指定需要使用Combiner,以及用哪个类作为Combiner的逻辑
job.setCombinerClass(WordcountReducer.class);

运行程序,如图4-16,4-17所示
在这里插入图片描述
在这里插入图片描述

以上是关于大数据之Hadoop(MapReduce):Combiner合并案例实操的主要内容,如果未能解决你的问题,请参考以下文章

大数据之Hadoop(MapReduce):WritableComparable排序案例实操(全排序)

大数据Hadoop之MapReduce

大数据技术之Hadoop(MapReduce)

大数据之二:Hadoop与Spark辨析

大数据之Hadoop(MapReduce): MapReduce概述

大数据之Hadoop(MapReduce):MapReduce核心思想