0

我使用 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

它工作正常,但如果我运行

名称节点格式

它将返回如下错误

$ 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"

请帮我解决问题

4

1 回答 1

0

如果您使用此库 org.apache.commons.logging.LogFactory 那么您可能应该根据 classes@coding 初始化日志

例子

私有静态日志 LOG = LogFactory.getLog(ClassName.class);

它在编译时具有 .class 扩展名,您应该确保该类是否已创建,否则它会给出异常,我猜

也检查类路径

问题-java.lang.NoClassDefFoundError

根本原因:环境变量部分中设置的 Java 路径不正确

解决方法:设置正确的 JAVA_HOME 路径

Steps->Environment Variable Setting(我的Comp-右键->Properties->Env Variable->Advance Tab->Variable)

创建新的 JAVA_HOME 环境变量。

JAVA_HOME .;C:\Program Files (x86)\Java\jdk1.6.0_14

在 PATH 变量部分设置 JAVA_HOME 变量。

路径 %JAVA_HOME%\bin

在 CLASSPATH 变量中设置 JAVA_HOME 变量

类路径 %JAVA_HOME%\jre\lib

重启系统

验证所有变量

回声 %CLASSPATH%

回显 %JAVA_HOME%

回显 %PATH%

编译并运行程序

于 2013-10-02T09:12:43.837 回答