hadoop的combiner函数介绍

combiner函数与reduce函数形式相同,但不同之处在于它的输出类型是中间的键值(key,value)对类型,这些中间值最终会输入给reduce函数,map会产生大量本地输入,但map函数不会对键值对做合并,例如统计单词dog的数量:

Map:

dog 1

dog 1

dog 1

dog 1

Map阶段,某个Map执行完毕传给Reduce的参数为dog{1,1,1,1},values中的值为4个,而如果添加combiner函数,其会实现本地相同key的合并,并对map输出key进行排序,因此最终传给reduce的键值对是dog{4},因此这样可以减少map传给reduce的数据数量,这是MapReduce的一种优化手段。

需要注意:combiner与Mapper和Reduced不同,没有默认实现,只有满足结合律才可以,求最大、求和可以,但求平均不可以。即combiner是可插可拔的,绝不能改变最终的结果。故其只能用于Reduce的输入键值对和输出键值对完全一样的情况。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Hadoop MapReduce编程中,有一些常用的函数可以帮助我们进行数据处理,这些函数包括: 1. map函数:map函数是MapReduce任务中的一个重要组成部分,它将输入数据中的每个元素映射成一个键值对,并输出到Reduce任务中进行处理。在map函数中,可以进行各种数据处理操作,例如过滤、计算、转换等等。 2. reduce函数:reduce函数是MapReduce任务中的另一个重要组成部分,它对Map任务输出的键值对进行合并和聚合,最终输出一个键值对列表。在reduce函数中,可以进行各种聚合操作,例如求和、计数、取最大值等等。 3. partitioner函数:partitioner函数用于将Map任务输出的键值对分配到不同的Reduce任务中进行处理。在partitioner函数中,可以根据键的哈希值或其他特定的规则,将键值对分配到不同的Reduce任务中。 4. combiner函数combiner函数是在Map任务输出的键值对进行本地合并和聚合的函数,它可以减少数据传输量,提高MapReduce任务的效率。在combiner函数中,可以进行各种本地聚合操作,例如求和、计数、取最大值等等。 5. inputformat函数:inputformat函数是用于读取输入数据的函数,它定义了输入数据的格式和读取方法。例如,可以使用TextInputFormat函数读取文本文件,使用SequenceFileInputFormat函数读取二进制文件等等。 6. outputformat函数:outputformat函数是用于输出结果数据的函数,它定义了输出数据的格式和输出方法。例如,可以使用TextOutputFormat函数将结果输出为文本文件,使用SequenceFileOutputFormat函数将结果输出为二进制文件等等。 这些函数Hadoop MapReduce编程中常用的函数,掌握它们可以帮助我们更好地进行数据处理和分析。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值