Hive 面对java.lang.NoClassDefFoundError:org/joda/time/ReadableInstant错误,即使在类路径中添加了joda time库

Hive 面对java.lang.NoClassDefFoundError:org/joda/time/ReadableInstant错误,即使在类路径中添加了joda time库,hive,jodatime,Hive,Jodatime,我有一个使用joda时间库类的java类。我能够导入joda时间类并在eclipse中运行我的类 当我试图在配置单元环境中添加类时,我会遇到错误(java.lang.NoClassDefFoundError:org/joda/time/ReadableInstant)。甚至这个类也存在于类路径中,并且还显式地添加了joda时间jar。在joda时间罐中,org/joda/time/ReadableInstant已经存在 java.lang.NoClassDefFoundError: org/jo

我有一个使用joda时间库类的java类。我能够导入joda时间类并在eclipse中运行我的类

当我试图在配置单元环境中添加类时,我会遇到错误(java.lang.NoClassDefFoundError:org/joda/time/ReadableInstant)。甚至这个类也存在于类路径中,并且还显式地添加了joda时间jar。在joda时间罐中,org/joda/time/ReadableInstant已经存在

java.lang.NoClassDefFoundError: org/joda/time/ReadableInstant
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:264)
    at org.apache.hadoop.hive.ql.exec.FunctionTask.getUdfClass(FunctionTask.java:313)
    at org.apache.hadoop.hive.ql.exec.FunctionTask.createTemporaryFunction(FunctionTask.java:181)
    at org.apache.hadoop.hive.ql.exec.FunctionTask.execute(FunctionTask.java:81)
    at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:153)
    at org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:85)
    at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:1503)
    at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:1270)
    at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1088)
    at org.apache.hadoop.hive.ql.Driver.run(Driver.java:911)
    at org.apache.hadoop.hive.ql.Driver.run(Driver.java:901)
    at org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:268)
    at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:220)
    at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:423)
    at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:792)
    at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:686)
    at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:625)
    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:601)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:156)
Caused by: java.lang.ClassNotFoundException: org.joda.time.ReadableInstant
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356)

如果您有任何帮助/建议,我们将不胜感激。

在我的案例中,我也将joda-time.jar复制到了一个Hive公共库中,但这不是最好的解决方案。正在寻找其他解决方案。