提高Hadoop中MapReduce作业性能的提示



我有100个映射器和1个reducer在一个作业中运行。如何提高工作表现?

根据我的理解:使用组合器可以在很大程度上提高性能。但是,我们还需要配置什么来提高作业性能呢?

由于这个问题中的数据有限(输入文件大小、HDFS块大小、平均映射处理时间、Mapper插槽数和减少集群中的插槽数等),我们无法提供建议。

但是,有一些通用的指导方针可以提高性能。

  1. 如果每个任务花费的时间少于30-40秒,则减少任务数量
  2. 如果作业的输入量超过1TB,请考虑将输入数据集的块大小增加到256M,甚至512M以减少任务数量
  3. 只要每个任务至少运行30-40秒,就可以将映射器任务的数量增加到集群中映射器插槽数量的几倍
  4. 每个作业的减少任务数应等于或略小于集群中减少插槽的数量

更多提示:

  1. 使用正确的诊断工具正确配置群集
  2. 将中间数据写入磁盘时使用压缩
  3. 调整Map&按照以上提示减少任务
  4. 在适当的地方合并组合器
  5. 使用最适合的数据类型s渲染输出(当输出值的范围在Integer范围内时,不要使用LongWritable。在这种情况下,IntWritable是正确的选择)
  6. 重用Writables
  7. 拥有正确的评测工具

看看cloudera的这篇文章,了解更多提示。

相关内容

  • 没有找到相关文章