我有100个绘图机和1个减速机在运行的工作。如何提高工作绩效?据我了解:使用合路器可以在很大程度上提高性能。但是我们还需要配置什么来提高作业性能呢?
bpsygsoo1#
由于此问题中的数据有限(输入文件大小、hdfs块大小、平均Map处理时间、Map器插槽数和集群中的reduce插槽数等),我们无法建议提示。但是有一些通用的指导方针来提高性能。如果每个任务所需时间少于30-40秒,请减少任务数如果一个作业有超过1tb的输入,请考虑将输入数据集的块大小增加到256m甚至512m,这样任务的数量就会更小。只要每个任务至少运行30-40秒,就将Map器任务的数量增加到集群中Map器插槽数量的几倍每个作业的reduce任务数应等于或略小于集群中reduce插槽数。更多提示:使用正确的诊断工具正确配置集群将中间数据写入磁盘时使用压缩根据以上提示调整Map数量并减少任务在适当的地方合并合路器使用最合适的数据类型呈现输出(不要使用 LongWritable 当输出值的范围在 Integer 射程。 IntWritable 在这种情况下是正确的选择)重新使用 Writables 拥有正确的分析工具请看这篇cloudera文章以获得更多提示。
LongWritable
Integer
IntWritable
Writables
1条答案
按热度按时间bpsygsoo1#
由于此问题中的数据有限(输入文件大小、hdfs块大小、平均Map处理时间、Map器插槽数和集群中的reduce插槽数等),我们无法建议提示。
但是有一些通用的指导方针来提高性能。
如果每个任务所需时间少于30-40秒,请减少任务数
如果一个作业有超过1tb的输入,请考虑将输入数据集的块大小增加到256m甚至512m,这样任务的数量就会更小。
只要每个任务至少运行30-40秒,就将Map器任务的数量增加到集群中Map器插槽数量的几倍
每个作业的reduce任务数应等于或略小于集群中reduce插槽数。
更多提示:
使用正确的诊断工具正确配置集群
将中间数据写入磁盘时使用压缩
根据以上提示调整Map数量并减少任务
在适当的地方合并合路器
使用最合适的数据类型呈现输出(不要使用
LongWritable
当输出值的范围在Integer
射程。IntWritable
在这种情况下是正确的选择)重新使用
Writables
拥有正确的分析工具请看这篇cloudera文章以获得更多提示。