我已經使用Cygwin終端在Windows上從Apache安裝了Hadoop 2.1版。運行命令hadoop version
讓我這個錯誤:運行「hadoop版本」命令時在Cygwin上的Hadoop中出現CLASSPATH問題
Error: Could not find or load main class org.apache.hadoop.util.VersionInfo
我已經使用Cygwin終端在Windows上從Apache安裝了Hadoop 2.1版。運行命令hadoop version
讓我這個錯誤:運行「hadoop版本」命令時在Cygwin上的Hadoop中出現CLASSPATH問題
Error: Could not find or load main class org.apache.hadoop.util.VersionInfo
我試圖在Windows Server 2008的版SP1 64位安裝的Hadoop 2.2.0時遇到了同樣的問題。
我已經安裝了cygwin64並配置了openssh。
user2870991的答案適用於我。 如下修改\ hadoop \ bin \ hadoop腳本,註釋原始的exec行並插入新行。
#exec "$JAVA" $JAVA_HEAP_MAX $HADOOP_OPTS $CLASS "[email protected]"
#add the -claspath "$(cygpath -pw "$CLASSPATH")" TO FIX the script running in cygwin
exec "$JAVA" -classpath "$(cygpath -pw "$CLASSPATH")" $JAVA_HEAP_MAX $HADOOP_OPTS $CLASS "[email protected]"
添加以下語句hadoop-config.sh @行無285
CLASSPATH=`cygpath -wp "$CLASSPATH"`
//Comments goes here
if [ "$HADOOP_CLASSPATH" != "" ]; then
# Prefix it if its to be preceded
if [ "$HADOOP_USER_CLASSPATH_FIRST" != "" ]; then
CLASSPATH=${HADOOP_CLASSPATH}:${CLASSPATH}
else
CLASSPATH=${CLASSPATH}:${HADOOP_CLASSPATH}
fi
fi
輸出:
[email protected] /cygdrive/e/hadoop/hadoop-2.2.0/bin
$ ./hadoop version
Hadoop 2.2.0
Subversion https://svn.apache.org/repos/asf/hadoop/common -r 1529768
Compiled by hortonmu on 2013-10-07T06:28Z
Compiled with protoc 2.5.0
From source with checksum 79e53ce7994d1628b240f09af91e1af4
This command was run using /E:/hadoop/hadoop-2.2.0/share/hadoop/common/hadoop-common-2.2.0.jar
你也可以添加以下到您的〜/ .bashrc
export HADOOP_CLASSPATH=$(cygpath -pw $(hadoop classpath)):$HADOOP_CLASSPATH
這爲我解決了它
它通過在「hadoop」腳本中添加以下參數來解決問題。 -classpath「$(cygpath -pw」$ CLASSPATH「)」 – Manesh
最初,$ {HADOOP_COMMON_HOME}/bin/hadoop下的「hadoop」腳本中的命令爲 - 「$ JAVA」$ JAVA_HEAP_MAX $ HADOOP_OPTS $ CLASS「$ @」 將其更改爲exec「$ JAVA」-classpath「$(cygpath -pw」$ CLASSPATH「)」$ JAVA_HEAP_MAX $ HADOOP_OPTS $ CLASS「$ @」 – Manesh
如果此問題解決了您的問題,請在解答中詳細解釋並標記它作爲公認的解決方案,以便未來的人將從您的問題中受益。謝謝! – Derek