运行Pig NoClassDefFoundError

时间:2016-11-28 19:11:57

标签: apache-pig cloudera

我试图让猪在我的机器上运行,但每当我尝试开始生猪时,我都会收到以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/mapred/JobConf
at org.apache.pig.Main.run(Main.java:642)
at org.apache.pig.Main.main(Main.java:156)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.hadoop.util.RunJar.run(RunJar.java:221)

每当我运行pig或尝试执行应该运行的脚本时,就会发生这种情况。

我不完全确定发生了什么,但看起来我可能没有正确地包括一些hadoop罐子。有没有人看过类似的问题或知道如何包含所需的罐子?

作为参考,我使用Apache Pig版本0.12.0-cdh5.4.9和Hadoop 2.6.0-cdh5.4.9并设置了这些环境变量:

PIG_HOME=/Users/username/cdh5/pig-0.12.0-cdh5.4.9
PIG_CLASSPATH=/etc/hadoop/conf:/Users/username/cdh5/hadoop-2.6.0-cdh5.4.9/*:/Users/username/cdh5/hadoop-2.6.0-cdh5.4.9/lib/*

我是否需要找到hadoop罐子并将它们添加到我的路径中,或者我还应该检查其他东西。

1 个答案:

答案 0 :(得分:0)

这最终是因为我错误地设置了CDH_MR2_HOME,因此猪找不到它需要的一些罐子。