我正在尝试运行hadoopwordcount作业(我使用的是hadoop2.6.0)。当我将我的项目导出到runnable jar并从cli运行它时,它就工作了。但是,当我在eclipse中使用“run as java application”启动它时,我收到以下异常:
线程“main”java.lang.noclassdeffounderror中出现异常:org/apache/commons/logging/logfactory at org.apache.hadoop.conf.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.net.urlclassloader.findclass(urlclassloader)的java.security.accesscontroller.doprivileged(本机方法)。java:354)在java.lang.classloader.loadclass(classloader。java:425)在sun.misc.launcher$appclassloader.loadclass(launcher。java:308)在java.lang.classloader.loadclass(类加载器。java:358) ... 2个以上
有人能帮我解决这个问题吗?
4条答案
按热度按时间kadbb4591#
检查是否添加了usr/lib/hadoop-0.20-mapreduce/bin中的jar
将所有jar添加到:
这解决了我直接从eclipse运行mapreduce程序时的问题。
f1tvaqid2#
我认为您没有正确配置eclipse,而且它不知道在哪里可以找到apachecommons库jar。在本教程中,您可能缺少最后几步:
要从eclipse运行测试,还需要执行以下操作:
在“项目属性”下,选择“java构建路径”,然后选择“库”选项卡
单击“添加外部类文件夹”,选择当前项目的生成目录
您可能还想看看另一个教程,它展示了如何/在何处添加依赖项jar来运行hadoop程序。
w41d8nur3#
您应该将commons-logging-1.1.1.jar添加到您的eclipse项目中,然后再次重建。
n6lpvg4x4#
请全部加进去
/usr/local/hadoop/share/hadoop/common/lib