【问题标题】:Exception when I run a hadoop job in Eclipse当我在 Eclipse 中运行 hadoop 作业时出现异常
【发布时间】:2015-11-07 18:24:00
【问题描述】:

我正在尝试运行 Hadoop 字数统计作业(我使用的是 hadoop 2.6.0)。当我将项目导出到可运行的 jar 并从 CLI 运行它时,它可以工作。但是,当我在 Eclipse 中使用“作为 java 应用程序运行”启动它时,我收到以下异常:

线程“main”中的异常 java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory 在 org.apache.hadoop.conf.Configuration.(Configuration.java:173) 在 WordCount.main(WordCount.java:54) 引起:java.lang.ClassNotFoundException:org.apache.commons.logging.LogFactory 在 java.net.URLClassLoader$1.run(URLClassLoader.java:366) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:355) 在 java.security.AccessController.doPrivileged(本机方法) 在 java.net.URLClassLoader.findClass(URLClassLoader.java:354) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:425) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:358) ... 2 更多

谁能帮我解决这个问题?

【问题讨论】:

    标签: java eclipse hadoop jar launch


    【解决方案1】:

    我认为您没有正确配置 Eclipse,它不知道在哪里可以找到 Apache Commons 库 jar。来自this tutorial,您可能遗漏了最后一步:

    要从 Eclipse 运行测试,您还需要执行以下操作:

    • 在项目属性下,选择 Java 构建路径,然后选择库选项卡
    • 点击“添加外部类文件夹”,选择当前项目的构建目录

    您可能还想查看this other tutorial,它显示了如何/在何处添加依赖项 jar 以运行 Hadoop 程序。

    【讨论】:

    【解决方案2】:

    您应该将 commons-logging-1.1.1.jar 添加到您的 eclipse 项目中并重新构建。

    【讨论】:

    • 我的 Hadoop 文件夹下不存在这个 JAR(commons-logging-1.1.1.jar),我使用的是 hadoop 2.6.0 版本
    【解决方案3】:

    请在/usr/local/hadoop/share/hadoop/common/lib中添加所有.jar

    【讨论】:

      【解决方案4】:

      检查你是否添加了 usr/lib/hadoop-0.20-mapreduce/bin 中的 jars

      在此添加所有罐子:

      当我直接从 eclipse 运行 MapReduce 程序时,这解决了我的问题。

      【讨论】:

        猜你喜欢
        • 2014-05-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-08
        • 1970-01-01
        • 2013-01-16
        相关资源
        最近更新 更多