Hadoop安装程序中的NoClassDefFoundError

Hadoop安装程序中的NoClassDefFoundError,hadoop,Hadoop,我正在使用本指南设置Hadoop: 但是,当我进入应该键入bin/hadoop版本的部分时,会出现以下错误: cygpath: can't convert empty path java.lang.NoClassDefFoundError: org/apache/hadoop/util/PlatformName Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.util.PlatformName at

我正在使用本指南设置Hadoop:

但是,当我进入应该键入
bin/hadoop版本
的部分时,会出现以下错误:

cygpath: can't convert empty path
java.lang.NoClassDefFoundError: org/apache/hadoop/util/PlatformName
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.util.PlatformName
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: org.apache.hadoop.util.PlatformName.  Program will exit.
Exception in thread "main" cygpath: can't convert empty path
cygpath: can't convert empty path
Hadoop 0.22.0
我最近使用的是1.0.3版,工作正常,但由于一个bug,我不得不降级到0.22.0版。不幸的是,我无法让这个版本工作

更多信息:

JAVA_HOME=/cygdrive/c/Progra~1/Java/jre6

从pastebin中可以看出,LD_LIBRARY_PATH变量有问题:

++ JAVA_LIBRARY_PATH=
++ '[' -d 'C:\cygwin\usr\local\hadoop\/build/native' -o -d 'C:\cygwin\usr\local\                      hadoop\/lib/native' ']'
cygwin warning:
 MS-DOS style path detected: C:\cygwin\usr\local\hadoop\/build/native
 Preferred POSIX equivalent is: /usr/local/hadoop/build/native
 CYGWIN environment variable option "nodosfilewarning" turns off this warning.
 Consult the user's guide for more details about POSIX paths:
   http://cygwin.com/cygwin-ug-net/using.html#using-pathnames
应该使用cygwin路径(
/cygdrive/c/cygwin/usr/local/hadoop/build/native
)创建此路径,并确保斜杠的方式正确


对bin和conf文件夹中的字符串
LD_LIBRARY
native
执行grep,以查看此设置可能出错的位置

在windows/cygwin上安装时,我遇到了此错误 在您选择的编辑器中打开$HADOOP\u INSTALL/bin/HADOOP-config.sh。 找到以“#cygwin path translation”开头的部分,并添加以下行:

    CLASSPATH=`cygpath -wp "$CLASSPATH"`
保存并退出

修复对我有效。更多信息,请查看此博客


如果没有任何进一步的信息,我猜您可能应该查看输出中的
cygpath:cannotconvert-empty-path
异常/错误/警告。您能否共享HADOOP_HOME和JAVA_HOME环境变量的值。
bin/HADOOP classpath
是否显示活动类路径,或者该错误是否也存在?
bin/HADOOP classpath
返回相同的错误。我在我原来的帖子中添加了我的JAVA_主页。在哪里可以找到HADOOP_HOME?HADOOP_HOME应该由HADOOP-config.sh设置。在添加JAVA_HOME(在
$HADOOP/conf/HADOOP env.sh
中)之后,您是否仍然看到相同的错误?在开始获取此错误之前,我已经设置了JAVA_HOME。HADOOP_HOME需要设置为什么?