Pig解决MapReduce数量少,执行数据慢

当执行Pig脚本,出现Map的数量极小,但是执行速度慢时。可以通过适当减小set pig.maxCombinedSplitSize的值来增加map的数量,从而加快执行速度。

因为,本地执行job占全部job的比例越高,则执行速度越快

在MapReduce Application 监控web页面中,Job Counter中有:

       Rack-local map tasks: 在同一个机柜中执行的map task数目

       Launched map tasks: 启动的map task数目

       Data-local map tasks: 本地执行的map task数目

此外,还有最终成功执行的map task的个数: successful map tasks。

则,通过data-local map tasks / successful map tasks = 本地执行的map tasks的比例作为指标来衡量在map阶段的效率。

本地执行的map tasks的比例越高,则map task的执行效率越快。如果不是大多数文件size都大大小于dfs.block.size,如果输出的文件数目能够接受且不会产生异常的情况下,当然是每个block对应一个mapper的效率最高了。当然,如果文件数目过多,使得每个block对应一个mapper,将导致内存溢出。所以,在内存允许的情况下,应该使得本地执行job的比例尽量高的目标去设置maxCombineSplitSize。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值