当你在学习和使用hadoop时,也许会遇到这样的一个问题,运行bin/start-all.sh时发现namenode没有启动,可以通过以下方法进行排查解决:

翻看日志,寻找错误提示,并进行内容的改进,最后进行重启

原因一:权限问题

#查看日志

cd /usr/local/hadoop/logs

#发现权限问题,更改文件权限

chown -R hadoop:hadoop /usr/local/hadoop/hdfs/*
chown -R hadoop:hadoop  /usr/local/hadoop/logs

#重启hadoop

bin/stop-all.sh
bin/start-all.sh

原因二:tmp文件问题

#创建hadoop_tmp目录

sudo mkdir ~/hadoop_tmp

#修改hadoop/conf目录里面的core-site.xml文件,加入以下节点

<property>
      <name>hadoop.tmp.dir</name>
      <value>/home/user/hadoop_tmp</value>
      <description>A base for other temporary directories.</description>
</property>

#格式化Namenode

hadoop namenode –format

#启动hadoop

start-all.sh

以上是hadoop namenode启动不了常见的原因,当然不排除其他原因的存在,可以尝试用这两种方式试一试!