【问题标题】:Hadoop Mapreduce ClassNotFoundExceptionHadoop Mapreduce ClassNotFoundException
【发布时间】:2014-07-03 09:53:15
【问题描述】:

我知道这个问题可能已经得到解答,但我还没有找到合适的答案。 我在 Eclipse 上使用 hadoop mapreduce,我想创建一个可执行 jar 来将它放在我的 hdfs 集群所在的 linux 服务器上。当我在我的 hdfs 集群和 eclipse 上运行 jar 时,出现由 java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory 引起的异常。所以我添加了一个外部 jar 通用日志记录,但是当我再次运行它时,又出现了另一个 NoClassDefFoundError 但这次是 log4j-level 等等。我想知道我必须添加多少个外部 jar,但我认为这不是最好的解决方案。有没有人有同样的问题,你是如何解决的? 非常感谢。

【问题讨论】:

  • 您需要添加一堆罐子。你使用普通的 Hadoop 还是 CDH/HDP?无论哪种情况,您都可以使用 maven 来管理您的依赖项,如果是后者,我可以给您我的 maven 依赖项。

标签: eclipse hadoop mapreduce classnotfoundexception logfactory


【解决方案1】:

通常,在日志初始化期间发生先前异常时会发生此错误。

Hadoop 对依赖项非常敏感,您应该确保您的第三方库是您的 hadoop 类路径的一部分,或者在您的作业 jar 中创建一个包含所有依赖项的阴影 jar。您应该使用 Maven 或程序集来创建该 jar。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-11
    • 1970-01-01
    • 2015-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多