Hadoop Mapreduce ClassNotFoundException



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

通常,此错误发生在日志初始化过程中先前发生异常时。

Hadoop对于依赖关系是非常多变的,你应该确保你的第三方库是你Hadoop类路径的一部分,或者在你的job jar中创建一个包含所有依赖关系的阴影jar。您应该使用maven或assembly来创建该jar。

相关内容

  • 没有找到相关文章

最新更新