我正在尝试在我的Windows 7机器上运行Hadoop(2.2.0)(是的,我知道在Linux上运行它会更好,但目前它不是一个选项)。 我按照http://ebiquity.umbc.edu/Tutorials/Hadoop/14%20-%20start%20up%20the%20cluster.html和http://blog.sqltrainer.com/2012/01/installing-and-configuring-apache.html
上发布的说明进行操作 Evetyhing一直很好,直到我试图启动Hadoop。我尝试运行的每个操作都以Error: Could not find or load main class ...
错误结束。
对于例如运行
./hadoop version
结束
Error: Could not find or load main class org.apache.hadoop.util.VersionInfo
它看起来像是一个类路径问题。但是,我不知道如何解决它。我尝试设置不同的环境变量,比如$ HADOOP_COMMON_HOME或$ HADOOP_HOME,但没有运气。
有什么想法吗?
答案 0 :(得分:0)
当您经常收到此错误消息时,您使用的是错误的Java版本,或者该程序是使用较旧的Java版本编译的。
您可以打开cmd(命令提示符)并输入java -version
。
答案 1 :(得分:0)
将此行添加到〜/ .bash_profile为我工作:
导出HADOOP_PREFIX = / where_ever_you_install_hadoop / hadoop
仅供参考,我对此帖有同样的答案:Could not find or load main class org.apache.hadoop.util.VersionInfo
答案 2 :(得分:0)
我也一直试图让Windows 7运行并运行Hadoop。对我来说,问题是Hadoop以Cygwin格式传递CLASSPATH
CLASSPATH=/cygdrive/c/foo:/cygdrive/c/bar
但是,Java期望Windows格式的CLASSPATH
CLASSPATH=c:\foo;c:\bar
看着hadoop-0.19.1向我展示了他们是如何处理的。
您可以在bin/hadoop
之前插入以下语句,在它最后调用Java之前(并重复其他java调用sh脚本)
cygwin=false
case "`uname`" in
CYGWIN*) cygwin=true;;
esac
if $cygwin; then
echo Cygwin
CLASSPATH=`cygpath -p -w "$CLASSPATH"`
HADOOP_HOME=`cygpath -d "$HADOOP_HOME"`
HADOOP_LOG_DIR=`cygpath -d "$HADOOP_LOG_DIR"`
TOOL_PATH=`cygpath -p -w "$TOOL_PATH"`
fi
export CLASSPATH=$CLASSPATH
echo $CLASSPATH
exec "$JAVA" $JAVA_HEAP_MAX $HADOOP_OPTS $CLASS "$@"
答案 3 :(得分:0)
我自己也遇到过这个问题。这就是我解决问题的方法。
将以下内容添加到〜/ .bashrc文件中:
export HADOOP_CLASSPATH=$(cygpath -pw $(hadoop classpath)):$HADOOP_CLASSPATH
注意:您可以直接在Windows上安装Hadoop2.2 +。你不需要Cygwin。
答案 4 :(得分:0)
我的问题是资源管理器(纱线)无法加载Hadoop库(罐子)。 我通过更新配置解决了这个问题。 将此添加到yarn-site.xml:
<property> <name>yarn.application.classpath</name> <value>C:/hadoop-2.8.0/share/hadoop/mapreduce/*,C:/hadoop-2.8.0/share/hadoop/mapreduce/lib/*,C:/Hadoop-2.8.0/share/hadoop/common/*,C:/Hadoop-2.8.0/share/hadoop/common/lib/*, C:/hadoop-2.8.0/share/hadoop/hdfs/*,C:/hadoop-2.8.0/share/hadoop/hdfs/lib/*,C:/hadoop-2.8.0/share/hadoop/yarn/*,C:/hadoop-2.8.0/share/hadoop/yarn/lib/*</value> </property>
请注意,根据您的系统,此处使用的路径可以是相对的。