3

pig 0.10.0 は ruby​​ UDF をサポートします。だから、私は非常に単純な例を試しています。しかし、次のエラーが発生しました。なぜなのかご存知ですか?

Pig Stack Trace
--------------- ERROR 2998: Unhandled internal error. org/jruby/embed/ScriptingContainer

java.lang.NoClassDefFoundError: org/jruby/embed/ScriptingContainer  at
org.apache.pig.scripting.jruby.JrubyScriptEngine.<clinit>(JrubyScriptEngine.java:65)
    at java.lang.Class.forName0(Native Method)  at
java.lang.Class.forName(Class.java:169)     at
org.apache.pig.scripting.ScriptEngine.getInstance(ScriptEngine.java:254)
    at org.apache.pig.PigServer.registerCode(PigServer.java:523)    at
org.apache.pig.tools.grunt.GruntParser.processRegister(GruntParser.java:422)
    at
org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:419)
    at
org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:189)
    at
org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:165)
    at org.apache.pig.tools.grunt.Grunt.exec(Grunt.java:84)     at
org.apache.pig.Main.run(Main.java:555)  at
org.apache.pig.Main.main(Main.java:111)     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:156) Caused by:
java.lang.ClassNotFoundException: org.jruby.embed.ScriptingContainer
    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)   ... 17 more
================================================================================
4

2 に答える 2

1

私も同じ問題を抱えていました。jruby.jar が pig にインストールされているかどうかを確認する必要があります。

jython.jar がそこにあったように見えるので、おそらくそれは人々が python を使用するための友好的なナッジです。

于 2013-02-01T18:25:06.470 に答える
0

jruby.jar をクラスパスに明示的に配置する必要がありました。

java -cp $PIG_HOME/pig-0.11.1.jar:$PIG_HOME/lib/jruby.jar org.apache.pig.Main -x local myscript.pig
于 2013-08-09T15:39:35.897 に答える