未处理的内部错误。在 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)