Hadoop安装程序中的NoClassDefFoundError
我正在使用本指南设置Hadoop: 但是,当我进入应该键入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
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需要设置为什么?