Pig调优参数详解

1. pig.maxCombinedSplitSize 和 pig.splitCombination

用途:

  • 当处理处理大批量的小文件时,默认设置情况下可能会遇到“命名空间超过配额限制”的错误。
  • Pig脚本运行结果可能会产生数量巨大的输出文件(通常在没有reduce时),比如几万甚至几十万个文件输出。

Pig提供了能够合并多个输入文件生成一个split的功能:

  • set pig.splitCombination true
  • set pig.maxCombinedSplitSize 134217728; -- 134217728 = 128M

2. mapred.map.tasks.speculative.execution和mapred.reduce.tasks.speculative.execution

用途:

  • Pig处理大批量数据时,当pig job被提交后,起初执行速度还不错,但是到了90%之后,job的执行速度就十分缓慢。原因是拖后腿的task大多数很早就被启动执行了,导致整个job在后期执行非常缓慢。

如果设置mapred的speculative开关为true,Map-Reduce框架就会侦测执行缓慢的task,启动新的task做相同的事情,最终把拖后腿的task都kill掉,从而有效的提高了pig job的执行速度。

  • set mapred.map.tasks.speculative.execution true
  • set mapred.reduce.tasks.speculative.execution true

3. mapreduce.map.output.compress

用途:

  • 当mapreduce的输出文件较大时,则需要压缩时,从而减少存储量。

可以更改mapred.output.compress为true,可以压缩文件:

  • set mapred.output.compress true

4. mapreduce.job.reduce.slowstart.completedmaps

用途:

  • 当Map Task完成的比例达到该值后才会为Reduce Task申请资源。

mapreduce.job.reduce.slowstart.completedmaps参数如果设置的过低,那么reduce就会过早地申请资源,造成资源浪费;如果这个参数设置的过高,比如为1,那么只有当map全部完成后,才为reduce申请资源,开始进行reduce操作,实际上是串行执行,不能采用并行方式充分利用资源。

  • set mapreduce.job.reduce.slowstart.completedmaps 1.0

5. mapreduce.map.memory.mb和mapreduce.reduce.memory.mb

用途:

  • 设置每个Reduce Task需要的内存量和每个Map Tast需要的内存量

 设置Reduce和Map任务的内存量:

  • set mapreduce.map.memory.mb 20000
  • set mapreduce.reduce.memory.mb 20000





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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值