错误:无法找到或加载主类org.apache.hadoop.hdfs.server.namenode.NameNode尝试所有解决方案仍然错误仍然存​​在

时间:2016-11-30 12:31:48

标签: hadoop mapreduce

我正在按照教程安装hadoop。用hadoop 1.x解释,但我使用的是hadoop-2.6.0

我在执行以下cmd之前已成功完成所有步骤。

  

bin / hadoop namenode -format

执行上述命令时出现以下错误。

  

错误:无法找到或加载主类org.apache.hadoop.hdfs.server.namenode.NameNode

我的hadoop-env.sh文件

 The java implementation to use.
export JAVA_HOME="C:/Program Files/Java/jdk1.8.0_74"

# The jsvc implementation to use. Jsvc is required to run secure datanodes
# that bind to privileged ports to provide authentication of data transfer
# protocol.  Jsvc is not required if SASL is configured for authentication of
# data transfer protocol using non-privileged ports.
#export JSVC_HOME=${JSVC_HOME}

export HADOOP_PREFIX="/home/582092/hadoop-2.6.0"

export HADOOP_HOME="/home/582092/hadoop-2.6.0"
export HADOOP_COMMON_HOME=$HADOOP_HOME
#export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_HDFS_HOME=$HADOOP_HOME
export PATH=$PATH:$HADOOP_PREFIX/bin

export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HADOOP_HOME/share/hadoop/hdfs/hadoop-hdfs-2.6.0.jar

export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-"/etc/hadoop"}

芯-site.xml中

core-site.xml Image

HD​​FS-site.xml中

  

dfs.data.dir   /家庭/ 582092 / Hadoop的DIR / DATADIR     dfs.name.dir   /家庭/ 582092 / Hadoop的DIR / namedir   

请帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

此问题背后的一个原因可能是用户定义的HDFS_DIR环境变量。这是由脚本来完成的,例如libexec/hadoop-functions.sh中的以下行:

HDFS_DIR=${HDFS_DIR:-"share/hadoop/hdfs"}
...
if [[ -z "${HADOOP_HDFS_HOME}" ]] &&
   [[ -d "${HADOOP_HOME}/${HDFS_DIR}" ]]; then
  export HADOOP_HDFS_HOME="${HADOOP_HOME}"
fi

解决方案是避免定义环境变量HDFS_DIR

问题注释中的建议是正确的–使用hadoop classpath命令确定类路径中是否存在hadoop-hdfs-*.jar文件。在我的情况下他们不见了。