MR -- Combiner合并

Combiner 是 MR 程序中的组件,类似 Reducer,但运行在每个 MapTask 节点上进行局部汇总,以减少网络传输。自定义 Combiner 需继承 Reducer 并重写 Reduce 方法,适用于不影响最终结果的业务逻辑。在 Wordcount 案例中,Combiner 可有效降低输出数据量。
摘要由CSDN通过智能技术生成

一、Combiner 合并介绍

1、Combiner 是什么?
(1) Combiner 是 MR 程序中 Mapper 和 Reducer 之外的一种组件。

(2) Combiner 组件的父类是 Reducer。

(3) Combiner 和 Reducer 的区别在于运行的位置
A、Combiner 是在每一个 MapTask 所在的节点运行
B、Reducer 是接收全局所有 Mapper 的输出结果

(4) Combiner 的意义就是对每一个 MapTask 的输出进行局部汇总,以减小网络传输量。

(5) Combiner 能够应用的前提是不能影响最终的业务逻辑,而且,Combiner 的输出 kv 应该和 Reducer 的输入 kv 类型要对应起来。

在这里插入图片描述

二、自定义 Combiner 实现步骤

1、自定义一个 Combiner 继承 Reducer,重写 Reduce 方法

public class WordcountCombiner extends Reducer<Text, IntWritable, Text,IntWritable>{
   

	@Override
	protected void reduce(Text key, Iterable<IntWritable> values,Context context) 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值