未处理的内部错误。在 pig 中使用 EXPLAIN 时的 Java 堆空间

Posted

技术标签:

【中文标题】未处理的内部错误。在 pig 中使用 EXPLAIN 时的 Java 堆空间【英文标题】:Unhandled internal error. Java heap space when using EXPLAIN in pig 【发布时间】:2013-02-07 00:36:11 【问题描述】:

当我尝试使用以下语句时

explain -brief A;

我收到以下错误

2013-02-06 19:18:34,250 [Low Memory Detector] INFO     org.apache.pig.impl.util.SpillableMemoryManager - first memory handler call - Collection threshold init = 526123008(513792K) used = 349984528(341781K) committed = 699072512(682688K) max = 699072512(682688K)
2013-02-06 19:18:34,942 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 2998: Unhandled internal error. Java heap space

我尝试通过添加选项来增加堆空间大小

-Dmapred.child.java.opts=-Xmx4096m

但它没有用。有什么想法吗?

谢谢。 丹

【问题讨论】:

那么最终的解决方案是什么? 【参考方案1】:

    使用

    增加 PIG 堆空间

    export PIG_HEAPSIZE=4096

尽管如此,如果您在虚拟机中运行 PIG,请确保已为虚拟机分配了超过 4GB(或您想要设置的任何数量)的内存。假设您已将 X Gb 分配给 VM,那么将堆大小增加到超过 X Gb 将不会做任何事情。

    另外,您使用的 PIG 版本可能存在问题

尝试使用较旧的 pig 版本。我在 PIG-0.14.0 上遇到了同样的可重现问题,但在 PIG-0.12.1 上却没有。

【讨论】:

以上是关于未处理的内部错误。在 pig 中使用 EXPLAIN 时的 Java 堆空间的主要内容,如果未能解决你的问题,请参考以下文章

运行 pig 0.7.0 错误:错误 2998:未处理的内部错误

Pig 0.13 错误 2998:未处理的内部错误。 org/apache/hadoop/mapreduce/task/JobContextImpl

Pig 未运行:未处理的内部错误。 jline.Terminal.getTerminal()Ljline/终端;

Pig ERROR 2998:未处理的内部错误。静态(错误名称:com/company/Static)

Pig ERROR 2998:未处理的内部错误(错误名称 MY_CLASS_NAME)

EMR Hadoop Pig 作业错误“创建作业配置内部错误”