Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java &引用;错误:找不到或加载主类“;启动Hadoop时_Java_Windows_Hadoop - Fatal编程技术网

Java &引用;错误:找不到或加载主类“;启动Hadoop时

Java &引用;错误:找不到或加载主类“;启动Hadoop时,java,windows,hadoop,Java,Windows,Hadoop,我正在尝试在我的Windows7机器上运行Hadoop(2.2.0)(是的,我知道在Linux上运行它会更好,但目前还不能选择)。 我遵守了在和上发布的指示 在我尝试启动Hadoop之前,一切都很顺利。我尝试运行的每个操作都会以以下方式结束:错误:无法找到或加载主类…错误 例如跑步 ./hadoop version 到头来 Error: Could not find or load main class org.apache.hadoop.util.VersionInfo 这显然是类路径的问

我正在尝试在我的Windows7机器上运行Hadoop(2.2.0)(是的,我知道在Linux上运行它会更好,但目前还不能选择)。 我遵守了在和上发布的指示

在我尝试启动Hadoop之前,一切都很顺利。我尝试运行的每个操作都会以以下方式结束:
错误:无法找到或加载主类…
错误
例如跑步

./hadoop version
到头来

Error: Could not find or load main class org.apache.hadoop.util.VersionInfo
这显然是类路径的问题。然而,我不知道如何解决它。我尝试设置不同的环境变量,比如$HADOOP\u COMMON\u HOME或$HADOOP\u HOME,但没有运气


有什么想法吗?

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


您可以通过打开cmd(命令提示符)并键入
java-version

将这一行添加到~/,来检查您的版本。bash_profile对我有效:

导出HADOOP\u PREFIX=/where\u ever\u you\u安装\u HADOOP/HADOOP


仅供参考,我对这篇文章有相同的回答:

我也一直在尝试用Hadoop安装并运行Windows7。对我来说,问题是Hadoop正在以Cygwin格式传递类路径

CLASSPATH=/cygdrive/c/foo:/cygdrive/c/bar
但是,Java需要Windows格式的类路径

CLASSPATH=c:\foo;c:\bar
查看hadoop-0.19.1向我展示了他们是如何处理这个问题的。 您可以将以下语句插入到
bin/hadoop
,然后在最后调用Java(并对其他调用sh脚本的Java重复)


我自己也面临过这个问题。这就是我解决问题的原因

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

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

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

我的问题是资源管理器(Thread)无法加载Hadoop库(JAR)。 我通过更新配置解决了这个问题。 将此添加到warn-site.xml:


.application.classpath
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/warn/*,C:/hadoop-2.8.0/share/hadoop/warn/lib/*

请注意,此处使用的路径可以是相对的,具体取决于您的系统。

我正在运行java 1.7.0\u 21在运行程序之前您是否使用HADOOP\u类路径<代码>导出HADOOP\u CLASSPATH=/path/to/your/HADOOP/lib尝试使用一次。是的,已经这样做了,但没有帮助。我在VM中遇到了与Ubuntu相同的错误。
export HADOOP_CLASSPATH=$(cygpath -pw $(hadoop classpath)):$HADOOP_CLASSPATH
<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>