我正在尝试在我的 Windows 7 环境中安装 hadoop 并使用 cygwin 运行它。 我已经下载并安装了 cygwin 并配置了 ssh 我已经在 cygwin .bashrc 中设置了 java 类路径并设置了所有 hadoop 配置文件 我的 .bashrc 文件已列出
export JAVA_HOME="C:\\Program Files\\Java\\jdk1.6.0_24"
export HADOOP_HOME=/home/user/hadoop
export HADOOP_MAPRED_HOME=/home/user/hadoop
export HADOOP_COMMON_HOME=/home/user/hadoop
export HADOOP_HDFS_HOME=/home/user/hadoop
export YARN_HOME=/home/user/hadoop
export HADOOP_CONF_DIR=/home/user/hadoop/etc/hadoop
但是当我运行以下命令时出现找不到类的错误 cygwin 终端上的错误是:
$ ./hadoop version
java.lang.NoClassDefFoundError: org/apache/hadoop/util/VersionInfo
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.util.VersionInfo
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: org.apache.hadoop.util.VersionInfo. Program will exit.
Exception in thread "main"
为什么我会收到 noclass definition found 错误,我是否还需要对配置做一些其他事情。我正在使用 Windows 7 64 位和 hadoop 版本 2.2.0
请您参考如下方法:
一些提示:
- 将JDK安装到文件夹中,路径不能有空格。
设置路径如下:
$ export JAVA_HOME=/cygdrive/c/Program_Files/Java/jdk1.7.0_71
通过执行确保导出成功:
$ env | grep -i JAVA_HOME
这应该打印:
JAVA_HOME=/cygdrive/c/Program_Files/Java/jdk1.7.0_71
如果要查看版本,只需执行:
sh -x bin/hdfs version
使用
sh -x
运行.sh
脚本:sh -x bin/hdfs namenode -format