ruby - pig : java. lang.NoClassDefFoundError: org/jruby/embed/ScriptingContainer

标签 ruby user-defined-functions apache-pig

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
================================================================================

最佳答案

我遇到了同样的问题。您应该查看是否在 pig 上安装了 jruby.jar。

似乎 jython.jar 在那里,所以这可能是对人们使用 python 的友好插入。

关于ruby - pig : java. lang.NoClassDefFoundError: org/jruby/embed/ScriptingContainer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11552684/

相关文章:

ruby - 其他文件中的 Rake 任务

hadoop - 如何在Cloudera的Hadoop+Pig发行版中编译一个UDF

hadoop - 如何在 oozie 中将 pig 选项作为参数传递?

ruby - 从另一个哈希中的相应值中减去哈希中的值

ruby-on-rails - 向 friend 展示您本地的 Rails 项目时,您更喜欢什么?

apache-spark - PySpark UDF 返回 [Ljava.lang.Object;@]

sql - 在 MS Access 2007 中使用 SQL 用户定义函数

apache-pig - 在 pig 中按时间戳获取最后一行

hadoop - 无法从 pig 写入Hive表

ruby-on-rails - 你如何将 'save' 数据写入 Rails Controller 中的数据库?