无法找到或加载主类org.apache.hadoop.util.VersionInfo

时间:2014-01-19 02:49:54

标签: java linux apache ubuntu hadoop

我按照“http://codesfusion.blogspot.com/2013/10/setup-hadoop-2x-220-on-ubuntu.html”在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 Environment (IcedTea 2.3.10) (7u25-2.3.10-1ubuntu0.12.04.2)
OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode)

10 个答案:

答案 0 :(得分:8)

这是环境变量设置的问题。显然,我找不到一个可以工作直到现在。我在尝试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

我认为你的问题会像我的一样解决。

答案 1 :(得分:7)

您可能没有正确遵循说明。以下是一些可以帮助我们/您诊断的事情:

  • 在您运行的hadoop version的shell中,运行export并向我们显示相关环境变量的列表。

  • 向我们展示您在/usr/local/hadoop/etc/hadoop/hadoop-env.sh文件中添加的内容。

  • 如果以上都没有给你/我们任何线索,那么找到并使用文本编辑器(暂时)修改hadoop包装器shell脚本。在开头附近的某处添加“set -xv”行。然后运行hadoop version,并告诉我们它产生了什么。

答案 2 :(得分:3)

我遇到了同样的问题。虽然看起来很简单,但我花了2小时的时间。我尝试了以上所有的事情,但它没有帮助。

我只是退出我所在的shell并再次登录系统再次尝试。然后事情奏效了!

答案 3 :(得分:2)

将此行添加到〜/ .bash_profile为我工作。

export HADOOP_PREFIX=/<where ever you install hadoop>/hadoop

所以只是:

  1. $ sudo open~ / .bash_profile然后添加上述行
  2. $ source~ / .bash_profile
  3. 希望这会有所帮助(:

答案 4 :(得分:1)

尝试检查:

  • JAVA_HOME,Hadoop config中所有与PATH相关的变量
  • 运行:. ~/.bashrc(请注意前面的点)以使这些变量在您的环境中可用。该指南似乎没有提到这一点。

答案 5 :(得分:1)

我遇到了与hadoop 2.7.2相同的问题 在我应用了显示的技巧后,我能够启动hdfs,但后来我发现我使用的tar档案遗漏了一些重要的部分。因此,下载2.7.3一切正常,因为它应该工作。

我的第一个建议是再次下载相同版本或专业的tar.gz。

如果你继续阅读......这就是我如何解决问题的...... 在全新安装后,hadoop无法找到罐子。 我做了这个小技巧:

我找到了罐子的位置 我做了一个文件夹的符号链接     $ HADOOP_HOME /共享/ hadoop的/共同

ln -s $HADOOP_HOME/share/hadoop/kms/tomcat/webapps/kms/WEB-INF/lib $HADOOP_HOME/share/hadoop/common 

对于版本命令,你需要hadoop-common-2.7.2.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命令都可以正常工作。

我又是一个快乐的人,我知道这不是一个礼貌的解决方案,但至少对我有用。

答案 6 :(得分:0)

我收到了这个错误,我修改了〜/ .bashrc 如下

export HADOOP_HOME=/usr/local/hadoop
export PATH=$HADOOP_HOME/bin:$PATH

然后打开终端并编写此命令

source ~/.bashrc

然后检查

hadoop version

答案 7 :(得分:0)

我添加了上述环境变量,但仍无法正常工作。在我的〜/ .bashrc中设置HADOOP_CLASSPATH如下:

export HADOOP_CLASSPATH=$(hadoop classpath):$HADOOP_CLASSPATH

答案 8 :(得分:0)

我用过

export PATH=$HADOOP_HOME/bin:$PATH

而不是

export PATH=$PATH:$HADOOP_HOME/bin

然后它对我有用!

答案 9 :(得分:0)

这是Windows 10 Git Bash (mingw64)的工作方式:

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

slf4j-api-1.6.1.jar复制到hadoop-3.3.0 \ share \ hadoop \ common