我正在尝试datafu.pig.stats.StreamingQuantile
在 LinkedIn 的优秀DataFu库中使用。StreamingQuantile
但是,当它第一次使用时,我从 Pig 收到以下错误:
2013-08-03 00:55:45,294 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 2998: Unhandled internal error. org/apache/pig/Accumulator
在日志文件中,我看到以下内容:
Pig Stack Trace
---------------
ERROR 2998: Unhandled internal error. org/apache/pig/Accumulator
java.lang.NoClassDefFoundError: org/apache/pig/Accumulator
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:792)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
(snip)
我尝试使用register
包含 guava.jar 和 pig.jar。两者都没有帮助。作为一种带吊带的方法,我尝试从 lib 中包含几个罐子:
register file:/home/hadoop/lib/guava-13.0.1.jar
register file:/home/hadoop/lib/pig/pig-0.11.1.1-amzn.jar
register file:/home/hadoop/lib/pig/pig.jar
register s3://my-s3-location/datafu-0.0.10.jar
register file:/home/hadoop/lib/pig/piggybank.jar
这似乎并不常见。我的意思是,显然 NoClassDefFoundError 很常见,但不是 Accumulator,尤其是 DataFu。这是关于 stackoverflow 的最接近的问题,但它与 hbase 有关,我找不到任何有帮助的东西。不幸的是,这个问题的唯一答案也表明我尝试过的东西。