如何为 hadoop mapreduce 配置 java 内存堆 space?
How to configure java memory heap space for hadoop mapreduce?
我已经尝试 运行 对大约 20 GB 数据进行 mapreduce 作业,但在 reduce shuffle 阶段出现错误。它说因为内存堆space。然后,我阅读了许多资料,我必须减少 mapred-site.xml 上的 mapreduce.reduce.shuffle.input.buffer.percent 属性,默认值为 0,7。所以,我将它减少到 0,2。
我想问一下,属性 对我的 mapreduce 作业的时间性能有影响吗?那么,我该如何正确配置才能使我的 mapreduce 作业永远不会出错?
mapreduce.reduce.shuffle.input.buffer.percent 0.70 在洗牌期间从最大堆大小分配到存储映射输出的内存百分比。
由此看来,如果将其减小到任意值,则可能会降低洗牌阶段的性能。
默认值背后会有一定的推理和测试
您可以在此处查看其他相关属性
http://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml
你的映射器输出的大约数据是多少,如果它很大那么你可能想要增加映射器的数量
同样,如果 reducer 的数量较少,堆 space 错误可能会在 reduce 阶段发生。
您可能想检查您的工作计数器并增加 mappers/reducers
您也可以尝试增加 mapper/reducer 内存
通过设置属性 mapreduce.reduce.memory.mb 和 mapreduce.map.memory.mb
我已经尝试 运行 对大约 20 GB 数据进行 mapreduce 作业,但在 reduce shuffle 阶段出现错误。它说因为内存堆space。然后,我阅读了许多资料,我必须减少 mapred-site.xml 上的 mapreduce.reduce.shuffle.input.buffer.percent 属性,默认值为 0,7。所以,我将它减少到 0,2。
我想问一下,属性 对我的 mapreduce 作业的时间性能有影响吗?那么,我该如何正确配置才能使我的 mapreduce 作业永远不会出错?
mapreduce.reduce.shuffle.input.buffer.percent 0.70 在洗牌期间从最大堆大小分配到存储映射输出的内存百分比。 由此看来,如果将其减小到任意值,则可能会降低洗牌阶段的性能。 默认值背后会有一定的推理和测试 您可以在此处查看其他相关属性 http://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml
你的映射器输出的大约数据是多少,如果它很大那么你可能想要增加映射器的数量 同样,如果 reducer 的数量较少,堆 space 错误可能会在 reduce 阶段发生。
您可能想检查您的工作计数器并增加 mappers/reducers 您也可以尝试增加 mapper/reducer 内存 通过设置属性 mapreduce.reduce.memory.mb 和 mapreduce.map.memory.mb