提高hadoop的mapreduce job效率笔记之二(尽量的用Combiner)

job 运行中发现如下的现象,通常job是 可以优化的:

  • Job的运行过程中会有一系列的sort 的操作,并且reduce input groups的counter变量的值远远要小于reduce input records counter。
  • Job在 mapper完成以后,shuffle过程中传输了大量的中间结果文 件 (例如:每个slave上的map output bytes都好几个GB)
  • 在job 的webui上的counter中看到,job的spilled records的数量远远要大于map output records的数量。

如 果job的算法中涉及到许多的排序操作,可以尝试写一个Combiner 来 提高job性能。hadoop mapreduce框架中提供了Combiner来减少中间结 果对磁盘的写入和减少中间结果在mapper和reducer之间的传输,通常这两个方面都是非常影响作业性能的两个方面。

性 能对比:

修改wordcount程序,将setCombinerClass去掉,或者不去掉,两种方式对比 运行。去掉的结果是,让每一个mapper的运行时间由原先的33s变成了平均48s,并且shuffle过程中的中间数据 也由1G变成1.4GB,整个的job由原先的8分30 秒变成了15分42秒,将近两倍了。而且,这个测试还是在enable了map的output 压缩的情况下进行的,如果disable这个特性,性能的影响可能会更加大。

Ref: http://blog.csdn.net/ae86_fc/article/details/5284244

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值