我知道这个问题可能已经回答了,但我还没有找到正确的答案。我在eclipse上使用hadoopmapreduce,我想创建一个可执行jar,把它放在一个linux服务器上,那里有我的hdfs集群。当我在hdfs集群和eclipse上运行jar时,出现了由java.lang.noclassdeffounderror引起的异常:org/apache/commons/logging/logfactory。所以我添加了一个外部jar公共日志,但是当我再次运行它时,出现了另一个noclassdeffounderror,但这次是log4j级别,以此类推。我想知道有多少外部jar我必须添加,但我不认为这是最好的解决方案。有没有人有同样的问题,你是怎么解决的?非常感谢你。
1条答案
按热度按时间dgjrabp21#
通常,在日志初始化过程中发生以前的异常时会发生此错误。
hadoop对于依赖关系非常易变,您应该确保您的第三方lib是hadoop类路径的一部分,或者在您的job jar中创建一个包含所有依赖关系的着色jar。您应该使用maven或assembly来创建这个jar。