阅读http://gbif.blogspot.com/2011/01/setting-up-hadoop-cluster-part-1-manual.html之后,我们要尝试使用mapred.reduce.parallel.copies。

该博客提到“非常仔细地查看日志”。我们怎么知道我们已经达到了最佳点?我们应该寻找什么?我们如何检测到我们过度并行化了?

最佳答案

为此,您基本上应该寻找4件东西:CPU,RAM,磁盘和网络。如果您的设置超出了这些指标的阈值,则可以推断出您正在突破极限。例如,如果您将“mapred.reduce.parallel.copies”的值设置为比可用核心数高得多的值,则最终将有太多线程处于等待状态,这是基于此属性的。将创建以获取Map输出。除此以外,网络可能不堪重负。否则,如果有太多中间输出要混洗,则您的工作将变慢,因为在这种情况下需要基于磁盘的混洗,这比基于RAM的混洗要慢。根据您的RAM为“mapred.job.shuffle.input.buffer.percent”选择一个明智的值(默认为Reducer堆的70%,通常很好)。因此,这些都是可以告诉您是否过度并行化的事情。您还应该考虑许多其他事项。我建议您仔细阅读“Hadoop Definitve指南”的第6章。

为了提高工作效率,您可以采取一些措施,例如使用组合器限制数据传输,启用中间压缩等。

高温超导

附言:答案不是仅针对“mapred.reduce.parallel.copies”。它告诉您有关总体上调整工作的信息。实际上,仅设置此属性不会对您有多大帮助。您还应该考虑其他重要属性。

关于hadoop - 如何调整mapred.reduce.parallel.copies?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8642643/

10-16 01:51