【问题标题】:NoClassDefFoundError: org/apache/hadoop/conf/ConfigurationNoClassDefFoundError: org/apache/hadoop/conf/Configuration
【发布时间】:2015-11-23 22:48:33
【问题描述】:

我正在尝试安装 oozie 并收到此错误。我有 hadoop 2.7.1、maven 3.3.3 。对此有什么建议吗?

huseyin@ubuntu:~$ '/usr/local/oozie/oozie/Oozie/oozie-4.3.0-SNAPSHOT/bin/oozie-setup.sh' sharelib create -fs hdfs://hadoopcluster:10000 设置 CATALINA_OPTS="$CATALINA_OPTS -Xmx1024m"

错误:发生 JNI 错误,请检查您的安装并 重试线程“主”java.lang.NoClassDefFoundError 中的异常: org/apache/hadoop/conf/配置在 java.lang.Class.getDeclaredMethods0(本机方法)在 java.lang.Class.privateGetDeclaredMethods(Class.java:2701) 在 java.lang.Class.privateGetMethodRecursive(Class.java:3048) 在 java.lang.Class.getMethod0(Class.java:3018) 在 java.lang.Class.getMethod(Class.java:1784) 在 sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544) 在 sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526) 引起:java.lang.ClassNotFoundException: org.apache.hadoop.conf.Configuration 在 java.net.URLClassLoader.findClass(URLClassLoader.java:381) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:424) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 7 更多

【问题讨论】:

  • 为什么要盲目关注JNI关键字? NoClassDefFoundError 非常明确:检查 CLASSPATH 以查看 Hadoop 库是否在其中...

标签: java noclassdeffounderror oozie


【解决方案1】:

您需要将 oozie 所需的所有 jar 添加到工作目录 (oozie-4.3.0-SNAPSHOT) 中名为 libext 的新文件夹中,请查看oozie docs 中的以下段落

默认情况下,oozie war 不会包含 hadoop 和 hcatalog 库, 但是它们是 oozie 工作所必需的。

有 2 个选项可以添加这些库:

  1. 在安装时,将 hadoop 和 hcatalog 库复制到 libext 并运行 oozie-setup.sh 来设置 oozie war。

  2. 使用 -Puber 构建,它将捆绑 oozie 战争中所需的库。

所以要解决你需要的问题:

1- 在 Oozie 展开的目录中创建一个 libext/ 目录。

2- 如果使用 ExtJS 库,请将 ZIP 文件复制到 libext/ 目录。

3- 如果 hadoop 和 hcatalog 库尚未包含在 war 中,请将相应的库添加到 libext/ 目录。 (在您的情况下),您可以将所有 jar 从您的 hadoop 项目项目复制到 libext 文件夹。

重要提示:libext 文件夹中的 jar 版本应与构建过程中安装的版本匹配。

您可以在构建过程中使用的 pom 文件中找到下载的版本。

【讨论】:

    【解决方案2】:
    cp  $HADOOP_HOME/share/hadoop/**/*.jar libext/
    cp  $HADOOP_HOME/share/hadoop/common/*.jar libext/
    cp  $HADOOP_HOME/share/hadoop/common/lib/*.jar libext/
    cp  $HADOOP_HOME/share/hadoop/hdfs/lib/*.jar libext/ 
    cp  $HADOOP_HOME/share/hadoop/hdfs/*.jar libext/
    cp  $HADOOP_HOME/share/hadoop/mapreduce/*.jar libext/
    cp  $HADOOP_HOME/share/hadoop/mapreduce/lib/*.jar libext/
    cp  $HADOOP_HOME/share/hadoop/yarn/lib/*.jar libext/
    cp  $HADOOP_HOME/share/hadoop/yarn/*.jar libext/
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-20
      • 2017-12-20
      • 2012-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多