Java 无法找到或加载主类org.apache.hadoop.util.VersionInfo
我按照“”在ubuntu上安装hadoop。但是,在检查hadoop版本时,我得到以下错误: 错误:无法找到或加载主类 org.apache.hadoop.util.VersionInfo 另外,当我尝试时:hdfs namenode-format 我得到以下错误: 错误:无法找到或加载主类 org.apache.hadoop.hdfs.server.namenode.namenode 使用的java版本是:Java 无法找到或加载主类org.apache.hadoop.util.VersionInfo,java,linux,apache,ubuntu,hadoop,Java,Linux,Apache,Ubuntu,Hadoop,我按照“”在ubuntu上安装hadoop。但是,在检查hadoop版本时,我得到以下错误: 错误:无法找到或加载主类 org.apache.hadoop.util.VersionInfo 另外,当我尝试时:hdfs namenode-format 我得到以下错误: 错误:无法找到或加载主类 org.apache.hadoop.hdfs.server.namenode.namenode 使用的java版本是: java version "1.7.0_25" OpenJDK Runtime Env
java version "1.7.0_25"
OpenJDK Runtime Environment (IcedTea 2.3.10) (7u25-2.3.10-1ubuntu0.12.04.2)
OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode)
尝试检查:
- JAVA_HOME,Hadoop配置中所有与路径相关的变量
- 运行:
(注意前面的点)使这些变量在您的环境中可用。《指南》似乎没有提到这一点~/。bashrc
- 在运行hadoop版本的shell中,运行导出并向我们显示相关环境变量的列表
- 向我们展示您在
文件中放置的内容/usr/local/hadoop/etc/hadoop/hadoop env.sh
- 如果以上两项都没有给您/我们任何线索,那么请查找并使用文本编辑器(临时)修改
包装器shell脚本。在开头附近添加行“set-xv”。然后运行hadoop版本,向我们展示它产生了什么hadoop
- 您可能没有正确遵循说明。以下是一些可以帮助我们/您诊断此问题的方法:
export HADOOP_PREFIX=/<where ever you install hadoop>/hadoop
导出HADOOP\u前缀=//HADOOP
所以只要:
希望这有帮助(:这是环境变量设置的问题。显然,我直到现在才找到一个可以工作的。我正在尝试2.6.4。下面是我们应该做的
export HADOOP_HOME=/home/centos/HADOOP/hadoop-2.6.4
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HADOOP_CONF_DIR=$HADOOP_HOME
export HADOOP_PREFIX=$HADOOP_HOME
export HADOOP_LIBEXEC_DIR=$HADOOP_HOME/libexec
export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native:$JAVA_LIBRARY_PATH
export HADOOP_CONF_DIR=$HADOOP_PREFIX/etc/hadoop
将这些添加到你的.bashrc中,别忘了这样做
source ~/.bashrc
我想你的问题会像我的一样得到解决。我得到了那个错误,我通过编辑~/.bashrc修复了它 如下
export HADOOP_HOME=/usr/local/hadoop
export PATH=$HADOOP_HOME/bin:$PATH
然后打开终端并写入此命令
source ~/.bashrc
然后检查
hadoop version
我也面临着同样的问题。虽然这看起来很简单,但却占用了我2个小时的时间。我尝试了上述所有方法,但都无济于事
我刚刚退出我所在的shell并再次登录系统进行了尝试。然后一切正常了!我在hadoop 2.7.2中遇到了同样的问题 在我应用了显示的技巧后,我能够启动hdfs,但后来我发现我使用的tar archivie缺少一些重要的部分。因此下载2.7.3一切都正常工作 我的第一个建议是以相同的版本或专业版本再次下载tar.gz 如果你继续阅读…这是我如何解决问题的。。。 在重新安装之后,hadoop无法找到jar。 我做了一个小把戏: 我找到了罐子所在的位置
我做了一个文件夹的符号链接到 $HADOOP_HOME/share/HADOOP/common
ln -s $HADOOP_HOME/share/hadoop/kms/tomcat/webapps/kms/WEB-INF/lib $HADOOP_HOME/share/hadoop/common
对于version命令,您需要hadoop-common-2.7.2.jar,这帮助我找到了jar的存储位置
在那之后
$ bin/hadoop version
Hadoop 2.7.2
Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r b165c4fe8a74265c792ce23f546c64604acf0e41
Compiled by jenkins on 2016-01-26T00:08Z
Compiled with protoc 2.5.0
From source with checksum d0fda26633fa762bff87ec759ebe689c
This command was run using /opt/hadoop-2.7.2/share/hadoop/kms/tomcat/webapps/kms/WEB-INF/lib/hadoop-common-2.7.2.jar
当然,现在任何hadoop/hdfs命令都可以工作了
我又是一个快乐的人,我知道这不是一个礼貌的解决方案,但至少对我有效。我添加了上面描述的环境变量,但仍然无效。在我的~/.bashrc中设置HADOOP_类路径如下所示:
export HADOOP\u CLASSPATH=$(HADOOP CLASSPATH):$HADOOP\u CLASSPATH
export PATH=$HADOOP_HOME/bin:$PATH
而不是
export PATH=$PATH:$HADOOP_HOME/bin
然后它对我起作用了!下面是它对
Windows10
GitBash(mingw64)
的工作原理:
已将
slf4j-api-1.6.1.jar
复制到hadoop-3.3.0\share\hadoop\common设置了我的路径的可能副本。我不知道出了什么问题。他们没有预先打包的二进制文件吗?通常都是这样。@AlekseyIzmailov-Java应用程序没有。现在肯定没有。我这里没有Ubuntu,但我有这些包Fedora上的es:$yum search hadoop
提供:hadoop-client.noarch,hadoop-common.noarch,hadoop-hdfs.noarch,hadoop-mapreduce.noarch
和其他一些东西。很抱歉,你能详细说明一下吗?我已经为我的hduser检查了.bashrc,它有教程中提到的所有路径。我遗漏了什么吗?我也跑了~/.bashrcI的意思是,在教程中,在他执行了$vi.bashrc
并设置了所有变量之后,他不会真正运行该文件,因此变量不会导出到当前会话中。您必须在以后运行其他命令(如hadoop
)的同一终端中运行它。或者重新登录或重新启动。我只是想ssing,可能是这个错误的另一个原因。谢谢你的帮助,但我尝试了重新登录和重新启动。似乎不起作用。另外,我找不到任何其他具有相同错误的帖子,所以我认为这应该是非常微不足道的。你也可以尝试从以下目录运行hadoop
命令:/usr/local/hadoop-2.2.0/share/hadoop/common/
。如果类路径有问题,它可能会得到修复。hadoop
必须是一个shell脚本。你能看到hadoop是如何在其中被调用的吗?类似于使用hadoop-common-2.2.0.jar的用法。我在运行export时得到这些:declare-x classpath=“/usr/local/hadoop/share/hadoop/common”declare-x HADOOP_COMMON_HOME=“/usr/local/HADOOP”declare-x HADOOP_HDFS_HOME=“/usr/local/HADOOP”declare-x HADOOP_INSTALL=“/usr/local/HADOOP”declare-x HOME=“/usr/local/HADOOP”declare-x HOME=“/HOME/hduser”declare-x JAVA_HOME=“/usr/lib/jdk/”declare-x路径=“/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/hadoop/bin:/usr/local/hadoop/sbin”declare-x-sharn\u HOME=“/usr/local/hadoop”我只在hadoop-env.sh中添加了“export JAVA\u HOME=/usr/lib/jvm/jdk/”,而rest是原来的方式。您需要整个“hadoop?.sh”文件@usb-Nothing”吗
export HADOOP_HOME="/PATH-TO/hadoop-3.3.0"
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HADOOP_CLASSPATH=$(cygpath -pw $(hadoop classpath)):$HADOOP_CLASSPATH
hadoop version