我使用cygwin在Windows中安装Hadoop-0.20.2。如果我跑
$ bin/hadoop version
Hadoop 0.20.2
Subversion https://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.20 -r 911707
Compiled by chrisdo on Fri Feb 19 08:07:34 UTC 2010
它工作正常,但如果我运行
namenode -format
它将返回如下所示的错误
$ bin/hadoop namenode -format
java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
at org.apache.hadoop.conf.Configuration.<clinit>(Configuration.java:139)
at org.apache.hadoop.hdfs.server.namenode.NameNode.<clinit>(NameNode.java:101)
Exception in thread "main"
请帮助我解决问题
答案 0 :(得分:0)
如果您使用此lib org.apache.commons.logging.LogFactory,那么您应该根据类@coding
初始化日志示例
private static Log LOG = LogFactory.getLog(ClassName.class);
在编译时它有.class扩展名你应该确定是否创建了该类,否则它会给出异常,我想
检查类路径
问题-java.lang.NoClassDefFoundError
根本原因:环境变量部分
中设置的Java路径不正确解决方案:设置正确的JAVA_HOME路径
步骤 - &gt;环境变量设置(我的Comp-Right Click - &gt; Properties-&gt; Env Variable-&gt; Advance Tab - &gt; Variable)
创建新的JAVA_HOME环境变量。
JAVA_HOME 。; C:\ Program Files(x86)\ Java \ jdk1.6.0_14
在PATH变量部分设置JAVA_HOME变量。
PATH%JAVA_HOME%\ bin
在CLASSPATH Variable
中设置JAVA_HOME变量CLASSPATH%JAVA_HOME%\ jre \ lib
重启系统
验证所有变量
echo%CLASSPATH%
echo%JAVA_HOME%
echo%PATH%
编译&amp;运行程序