当你在学习和使用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启动不了常见的原因,当然不排除其他原因的存在,可以尝试用这两种方式试一试!
有疑问加站长微信联系(非本文作者)