java - 如何为hadoop mapreduce配置Java内存堆空间?

标签 java hadoop mapreduce heap shuffle

我尝试对大约20 GB的数据运行mapreduce作业,但在减少随机播放阶段出现错误。它说是因为有内存堆空间。然后,我阅读了许多资料,我必须减少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 的数量少,则在减速阶段可能会发生堆空间错误。

您可能要检查您的工作柜台并增加制图仪/缩小器的数量
您也可以尝试增加映射器/缩减器的内存
通过设置属性mapreduce.reduce.memory.mb和mapreduce.map.memory.mb

关于java - 如何为hadoop mapreduce配置Java内存堆空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30175094/

相关文章:

java - hdfs 文件在伪分布式单节点集群中的位置?

java - 我可以输出键/值对,这样一个键特定于 Hadoop MapReduce 中的一个节点吗?

java - 具有变量 JsonProperty 的 Jackson 泛型(与泛型一起使用)

java - 星火 UnsupportedOperationException : empty collection

java - 失败的 "retrying"逻辑的设计模式?

hadoop - 从 RDBMS 导出为 Hadoop 兼容格式

Java编程用户定义类

scala - Spark(Scala)从驱动程序写入(和读取)本地文件系统

apache-spark - Spark - 获取部分文件后缀

c# - 如何在 C# 中为 RavenDB 正确创建 Map/Reduce 索引