提高Hadoop中MapReduce作业性能的技巧

时间:2015-12-12 14:54:35

标签: performance hadoop mapreduce hadoop2

我在作业中运行了100个mapper和1个reducer。如何提高工作绩效?

根据我的理解:使用组合器可以在很大程度上改善性能。但是我们还需要配置什么才能提高工作绩效?

1 个答案:

答案 0 :(得分:2)

由于此问题中的数据有限(输入文件大小,HDFS块大小,平均地图处理时间,Mapper插槽数量和群集中的缩小插槽等),我们无法提出建议。

但是有一些提高性能的一般指导原则。

  1. 如果每项任务的时间少于 30-40秒,请减少任务数量
  2. 如果某个作业的输入 1TB ,请考虑将输入数据集的块大小增加到 256M甚至512M ,这样任务的数量就会更少
  3. 只要每个任务至少运行 30-40秒,就将映射器任务的数量增加到群集中映射器插槽数量的某个倍数
  4. 每个作业的减少任务数应该等于或略小于群集中的减少槽数。
  5. 更多提示:

    1. 使用正确的诊断工具
    2. 正确配置群集
    3. 在将中间数据写入磁盘时使用压缩
    4. 调整Map&按照以上提示减少任务
    5. 在适当的地方合并 Combiner
    6. 使用大多数适当的数据类型来渲染输出(当输出值范围在LongWritable范围内时,请勿使用IntegerIntWritable是正确的选择在这种情况下)
    7. 重复使用Writables
    8. 拥有正确的分析工具
    9. 请查看此cloudera文章,了解更多提示。

相关问题