在启动hadoop的时候,会出现namenode节点启动不起来的情况。

这时用以下命令查看日志:


tail -100f /usr/local/hadoop/libexec/../logs/hadoop-hadoop-namenode-master.log


可以看到出现如下的提示错误信息:


Cannot lock storage /data/hadoop/hdfs/name. The directory isalready locked.


表示文件已经被锁住,查看该目录,已经是hadoop权限,没有问题。百思不得其解,后来查阅得知:


这个错误一般是我们在某次配置失败后,hadoop创建该目录,锁定之后失败退出造成的。解决方案就是删除tmp目录下hadoop创建的相关目录,然后重新配置。


所以我们删除掉/data/hadoop/hdfs/目录下的所有文件。OK,重新用命令start-all.sh启动hadoop。问题又来了,namenode还是没有出现,同理还是查看下日志,发现这回报了下面的错,跟上回不一样了。


ERROR org.apache.hadoop.hdfs.server.namenode.NameNode: java.io.FileNotFoundException: /data/hadoop/hdfs/name/current/VERSION (Permission denied)


这句话的意思是该文件没有权限,OK,进到该目录查看该文件是否有hadoop权限。


解决办法:“Cannot lock storage /data/hadoop/hdfs/name. The directory is already locked.”_第1张图片


可知current目录是没有hadoop权限的,OK,使用如下命令更改权限即可。


解决办法:“Cannot lock storage /data/hadoop/hdfs/name. The directory is already locked.”_第2张图片

这是权限已经改回来了。使用stop-all.sh停止之前启动的节点,再次使用start-all.sh启动,发现namenode节点已经启动起来了。


解决办法:“Cannot lock storage /data/hadoop/hdfs/name. The directory is already locked.”_第3张图片


OK.大功告成!!!