3

我正在尝试在我的 Windows 7 机器上运行 Hadoop(2.2.0)(是的,我知道在 Linux 上运行它会更好,但目前它不是一个选项)。我按照http://ebiquity.umbc.edu/Tutorials/Hadoop/14%20-%20start%20up%20the%20cluster.htmlhttp://blog.sqltrainer.com/2012/01/installing-上发布的说明进行操作和-配置-apache.html

在我尝试启动 Hadoop 之前,Evetyhing 一直很好。我尝试运行的每个操作都以 :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 但没有运气。

有任何想法吗?

4

5 回答 5

0

将此行添加到 ~/.bash_profile 对我有用:

导出 HADOOP_PREFIX=/where_ever_you_install_hadoop/hadoop

仅供参考,我对这篇文章有相同的答案:无法找到或加载主类 org.apache.hadoop.util.VersionInfo

于 2014-09-17T17:15:57.693 回答
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 "$@"
于 2014-12-12T08:46:38.753 回答
0

当您通常收到此错误消息时,可能是您使用了错误的 Java 版本,或者程序是使用较旧的 Java 版本编译的。

您可以通过打开 cmd(命令提示符)并键入来检查您的版本java -version

于 2013-10-30T11:39:27.460 回答
0

我自己也遇到过这个问题。这就是为我解决问题的方法。

将以下内容添加到 ~/.bashrc 文件中:

export HADOOP_CLASSPATH=$(cygpath -pw $(hadoop classpath)):$HADOOP_CLASSPATH

注意:您可以直接在 Windows 上安装 Hadoop2.2+。你不需要 Cygwin。

于 2014-12-13T14:13:15.690 回答
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>

请注意,此处使用的路径可以根据您的系统是相对的。

于 2018-12-01T15:56:01.320 回答