猪 0.13.0 中的错误 2998

Posted

技术标签:

【中文标题】猪 0.13.0 中的错误 2998【英文标题】:ERROR 2998 in pig 0.13.0 【发布时间】:2017-03-13 14:06:43 【问题描述】:

我刚刚安装了 pig。当我运行 pig 时,我会遇到无尽的错误,例如

2017-03-13 17:27:14,262 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 2998: Unhandled internal error. Could not initialize class org.apache.pig.tools.pigstats.PigStatsUtil

猪日志代码: Hadoop版本是hadoop0.20.2cdh3u6

    ERROR 2998: Unhandled internal error. org/apache/hadoop/mapreduce/task/JobContextImpl

java.lang.NoClassDefFoundError: org/apache/hadoop/mapreduce/task/JobContextImpl
        at org.apache.pig.tools.pigstats.PigStatsUtil.<clinit>(PigStatsUtil.java:68)
        at org.apache.pig.tools.grunt.Grunt.run(Grunt.java:64)
        at org.apache.pig.Main.run(Main.java:542)
        at org.apache.pig.Main.main(Main.java:156)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:197)
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.mapreduce.task.JobContextImpl
        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
        ... 9 more
================================================================================
Pig Stack Trace
---------------
ERROR 2998: Unhandled internal error. Could not initialize class org.apache.pig.tools.pigstats.PigStatsUtil

java.lang.NoClassDefFoundError: Could not initialize class org.apache.pig.tools.pigstats.PigStatsUtil
        at org.apache.pig.tools.grunt.Grunt.run(Grunt.java:64)
        at org.apache.pig.Main.run(Main.java:542)
        at org.apache.pig.Main.main(Main.java:156)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:197)

我不明白这是什么意思。

【问题讨论】:

【参考方案1】:

java.lang.NoClassDefFoundError 意味着您在启动 pig 作业时缺少类路径上的一些 hadoop 库 可能这个库 https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-mapred/0.22.0 丢失,因为它包含无法加载的类 (org.apache.hadoop.mapreduce.task.JobContextImpl)

【讨论】:

以上是关于猪 0.13.0 中的错误 2998的主要内容,如果未能解决你的问题,请参考以下文章

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

Pig UDF 中的 Java 依赖项

hortonworks沙箱中的猪错误

我的猪拉丁文脚本中的错误

带有 int 的猪拉丁语中的 sum 函数出现错误 1045

Pig 安装错误:错误 pig.Main:错误 2998:未处理的内部错误