2014-11-05 57 views
0

在Eclipse中,我有一个Hadoop项目,其依赖项由Maven处理。我目前能够在Eclipse内部运行Hadoop作业,并且没有安装Hadoop(因为Maven获取了所有的依赖关系)。问题是,我得到的堆空间异常:使用Maven配置为Eclipse中的Hadoop作业设置Java堆空间

java.lang.Exception: java.lang.OutOfMemoryError: Java heap space 

我知道我可以扩大Java堆空间在Hadoop配置,如果我已经安装了Hadoop的。如果我没有安装Hadoop,如何在从Eclipse运行作业时如何放大Java堆空间?我想保留对Maven的依赖管理,但需要一种方法来更改一些Hadoop配置。这可以在Maven配置文件pom.xml中完成吗?如果没有,我可以通过命令行参数吗?

回答

1

看起来像你正在从eclipse执行LocalJobRunner的Hadoop工作。如果是这种情况,Hadoop作业使用相同的eclipse JVM。你不能修改堆内存maven配置文件,而应该增加eclipse JVM堆。

请参阅this链接增加日食的堆。

+0

只是为了协作一些我的发现。问题确实存在于JVM参数中,但是扩大Eclipse的'-Xmx'本身并不能解决问题。正如我想到的[Visual VM](http://visualvm.java.net),LocalJobRunner正在以256M堆的大小运行,即使Eclipse使用4G的堆空间运行。因此,为了扩大LocalJobRunner的堆,你必须在'Run - > Run configuration - > Arguments - > VM arguments'下的设置中添加-Xmx512M。 – nikicc 2014-11-08 12:19:52