我按照“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)
答案 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
所以只是:
希望这会有所帮助(:
答案 4 :(得分:1)
尝试检查:
. ~/.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