我在我的应用程序中使用hadoop,但是在程序退出之前,我得到了这个错误 java.lang.OutOfMemoryError: Java heap space
我已经修改了 mapred-site.xml
并添加了这个属性 <property> <name>mapred.child.java.opts</name> <value>-Xmx4096m</value> </property>
但还是出现了例外。我在终端中使用了以下命令: java -XX:+PrintFlagsFinal -version | grep -iE 'HeapSize|PermSize|ThreadStackSize'
结果是:
uintx AdaptivePermSizeWeight = 20 {product}
intx CompilerThreadStackSize = 0 {pd product}
uintx ErgoHeapSizeLimit = 0 {product}
uintx HeapSizePerGCThread = 87241520 {product}
uintx InitialHeapSize := 1054841728 {product}
uintx LargePageHeapSizeThreshold = 134217728 {product}
uintx MaxHeapSize := 16877879296 {product}
uintx MaxPermSize = 174063616 {pd product}
uintx PermSize = 21757952 {pd product}
intx ThreadStackSize = 1024 {pd product}
intx VMThreadStackSize = 1024 {pd product}
java version "1.6.0_31"
OpenJDK Runtime Environment (IcedTea6 1.13.3) (6b31-1.13.3-1ubuntu1~0.12.04.2)
OpenJDK 64-Bit Server VM (build 23.25-b01, mixed mode)
如果有人能建议如何解决这个问题请。
1条答案
按热度按时间3npbholx1#
你的问题是内存泄漏。
您应该考虑检查代码,看看是什么导致了资源泄漏。通常,它是由gc无法从内存中删除数据的示例引起的。