今天写了一段hadoop程序,就是简单的MapReduce,写完以后在eclipse运行时上报:java.lang.OutOfMemoryError: Java heap space内存溢出的错误。总是不明白为什么会溢出。
后来询问网友和上网查找资料了解到。
原来我们平时开发的eclipse就模仿了一个java运行环境,当点击run运行时就启动了一个java虚拟机用来模拟真实电脑中的虚拟机。
可能hadoop的底层底层代码中定义的变量比较大把我的eclipse中启动的JVM的内存占满了所以上报该错误。
处理方法:
有两种方法:
1、打开eclipse配置文件eclipse.ini,更改把-Xmx(其数值代表jvm可以使用的最大内存数)
2. 运行java程序时,选择run->run configuration->arguments,输入-Xms100M -Xmx800M(-Xms代表jvm启动时分配的内存大小,-Xmx代表可最大分配多少内存)。
本文详细介绍了如何在使用Eclipse开发Hadoop MapReduce程序时遇到Java heap space内存溢出错误的原因,并提供了两种有效的解决方案:修改eclipse.ini配置文件和在运行时指定JVM参数。通过调整JVM内存分配,避免了内存溢出的问题,确保了程序的正常运行。
86万+

被折叠的 条评论
为什么被折叠?



