我使用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"
请帮我解决这个问题
1条答案
按热度按时间093gszye1#
如果您使用这个lib org.apache.commons.logging.logfactory,那么您可能应该根据classes@coding初始化日志
例子
private static log=logfactory.getlog(classname.class);
它有.class扩展,编译时你应该确定这个类是否创建了,否则它会给出一个异常,我猜
也检查类路径
issue-java.lang.noclassdeffounderror
根本原因:环境变量部分中设置的java路径不正确
解决方案:设置正确的javau主路径
步骤->环境变量设置(my comp右键单击->属性->环境变量->高级选项卡->变量)
创建新的java\u home环境变量。
java 岛之家。;c:\程序文件(x86)\java\jdk1.6.0\U 14
在路径变量部分设置java\ U home变量。
路径%java\u home%\bin
在classpath变量中设置java\ U home变量
类路径%java\u home%\jre\lib
重新启动系统
验证所有变量
回显%classpath%
回音%java\u home%
回显%路径%
编译并运行程序