我正在Eclipse中使用Hadoop-1.0.1。我正在尝试运行wordcount应用程序,但是当我运行WordCount.java时,Eclipse向我显示以下错误
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
at org.apache.hadoop.conf.Configuration.<clinit>(Configuration.java:143)
at test.WordCount.main(WordCount.java:56)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
... 2 more
我的
classpath
中有hadoop-core-1.0.1.jar。如果应用程序需要更多的 jar
最佳答案
看来您正在收到此错误,因为与通用日志记录相关的两个重要日志记录类commons-logging-1.1.1.jar和commons-logging-api-1.0.4.jar都无法从您的类路径中获得,或者只是没有它。
在大多数情况下,这些文件位于其他Hadoop Jar的\ lib文件夹中,因此当您设置类路径时,这些jar即可访问。请确认您的计算机中确实有这些文件,并且已在类路径中对其进行了设置,以便可以访问它们。
同样,当您运行“hadoop版本”时,会出现该版本,因此,相同的hadoop-core--SNAPSHOT.jar必须位于$ HADOOP_HOME位置。
您提到您正在运行WordCount.java,而应该说您正在运行WordCount作业,因为您始终将已编译的应用程序用作jar而不是Java。
$ bin / hadoop jar /usr/jboss/wordcount.jar org.myhadoop.WordCount / usr / jboss / wordcount / input / usr / jboss / wordcount / output
关于java - Hadoop-1.0.1中的java.lang.NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10637861/