java - Hadoop-1.0.1中的java.lang.NoClassDefFoundError

标签 java hadoop

我正在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/

相关文章:

java - 将日期格式更改为 Oracle 日期格式

java - 在主节点 : binding to port 8040 java.net.BindException

字数统计旁边的 Hadoop 示例

java - 我正在学习做 Restful 网络服务,同时实现我得到以下错误帮助我解决

java - 为什么 appengine 会扩展如此多的空闲实例?

java - 实体类中的属性有一个mappedBy值,该值确实存在于其所属实体中

java - 模型中的必填字段

apache-spark - 如何在HDFS文件上执行自定义C++二进制文件

hadoop - AmazonServiceException NoClassDefFoundError异常

hadoop - 在 pig 中使用过滤器时出现错误,当我转储结果时它给出错误