我正在尝试在LinkedIn的伟大datafu.pig.stats.StreamingQuantile
库中使用DataFu。但是,当Pig达到第一个StreamingQuantile
用法时,我收到以下错误:
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。 Here's the closest question on stackoverflow但它与hbase有关,我找不到任何有用的东西。不幸的是,The only answer to this question也表明了我尝试过的事情。