【问题标题】:Setting Java heap space for Hadoop job in Eclipse with Maven configuration使用 Maven 配置在 Eclipse 中为 Hadoop 作业设置 Java 堆空间
【发布时间】:2014-11-05 22:16:36
【问题描述】:

我在 Eclipse 中有一个 Hadoop 项目,其依赖项由 Maven 处理。我目前能够在 Eclipse 中运行 Hadoop 作业,但我没有安装 Hadoop(因为 Maven 获取了所有依赖项)。问题是我得到了堆空间异常:

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

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

【问题讨论】:

    标签: java eclipse maven hadoop hadoop2


    【解决方案1】:

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

    参考this链接增加eclipse的堆。

    【讨论】:

    • 只是为了在我的更多发现上进行合作。问题确实出在 JVM 参数中,但是为 Eclipse 本身扩大 -Xmx 并没有解决问题。正如我发现Visual VM LocalJobRunner 正在以 256M 的堆大小运行,即使 Eclipse 以 4G 的堆空间运行。因此,要扩大 LocalJobRunner 的堆,您必须将 -Xmx512M 添加到 Run -> Run configuration -> Arguments -> VM arguments 下的设置中。
    猜你喜欢
    • 2011-01-22
    • 1970-01-01
    • 2011-02-18
    • 2011-12-14
    • 2010-12-01
    • 2014-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多