hadoop的规约操作Combiner(规约) 步骤1.5

本文解释了MapReduce中Combiner的作用及其与Reducer的区别。Combiner可以在Map端减少数据传输量,但不能替代Reducer的功能,因为它无法处理来自不同Map任务的数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

job.setCombinerClass(MyReduce.class);//规约操作,形参是自定义的Reducer类

问:为什么使用Combiner?

答:Combiner发生在Map端,对数据进行规约处理,数据量变小了,传送到reduce端的数据量变小了,传输时间变短,作业的整体时间变短。


问:为什么Combiner不作为MapperReduce运行的标配,而是可选步骤呢?
答:因为不是所有的算法都适合使用Combiner处理,例如求平均数。


问:Combiner本身已经执行了reduce操作,为什么在Reducer阶段还要执行reduce操作呢?

答:combiner操作发生在map端的,处理一个任务所接收的文件中的数据,不能跨map任务执行;只有reduce可以接收多个map任务处理的数据。


例如有两个文件,每个文件中都有

hello you 

hello me

一个map任务读取一个文件,当一个map任务执行完后输出的是(包含Combiner操作)<hello,2><you,1><me,1>

而我们最终希望获取的是<hello,4><you,2><me,2>,所以说Combiner并不能完成Reducer的工作!因为Combiner只能处理一个任务所接收的文件中的数据,不能跨map任务执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值