如何为Hadoop MapReduce配置Java内存堆空间



我试图在约20 GB数据上运行MapReduce作业,并且在减少洗牌阶段时遇到了错误。它说,由于记忆堆空间。然后,我已经在许多来源上阅读了,我必须降低mapRed.shuffle.input.buffer.buffer.pute.xml上的默认值0,7。因此,我将其降低到0,2。

我想问的是,属性会影响我的MapReduce工作的时间绩效。那么,如何正确配置以使我的MapReduce作业永远不会出错?

mapReduce.Reduce.shuffle.input.buffer.buffer.%0.70存储器的百分比从最大堆大小分配到洗牌过程中存储地图输出的存储。从中看来,如果您将其降低到任意值,它可能会降低洗牌阶段的性能。默认值背后会有某些推理和测试您可以在此处查看其他相关属性http://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml

您的映射器的大约数据输出是什么,如果那是巨大的,那么您可能需要增加映射器的数量同样,如果还原器的数量较低,则可能在减少阶段时可能发生误差。

您可能需要检查您的工作柜台并增加映射器/还原器的数量您也可以尝试增加映射器/还原器内存通过设置属性 mapReduce.Reduce.memory.mb mapReduce.map.memory.mb

最新更新