Bug | Hadoop3.1.3 启动集群后没有NameNode节点 出现 storage directory does not exist or is not accessible


Bug

start-all.sh 启动hadoop集群后发现没有名称节点 NameNode

分析

这种情况通常都是检查hadoop运行的日志,在那之前需要先排除最容易忽视的点。

1. 检查 workers配置文件

使用jps 命令先查看其他的节点进程的情况,我这里发现其他节点只有Jps一个进程

重新配置 hadoop目录下的workers vim ./etc/hadoop/workers,将所有的工作节点主机名放入,比如:

hadoop101
hadoop102
hadoop103

先在其中一个节点,比如 hadoop101 节点修改 ,之后在通过scp命令传送到其他节点

scp /usr/local/hadoop/etc/hadoop/workers root@hadoop102:/usr/local/hadoop/etc/hadoop/
scp /usr/local/hadoop/etc/hadoop/workers root@hadoop103:/usr/local/hadoop/etc/hadoop/

image

接着在主节点hadoop101 重新 初始化名称节点 $HADOOP_HOME/bin/hdfs namenode -format

重新开启集群 $HADOOP_HOME/sbin/start-all.sh

依旧报错
image

jps后依然没有NameNode节点
image

若暂时没有解决NameNode节点问题,记得先关闭集群.

2. 解决启动集群时提示mkdir权限不够

此时应当是hadoop101对其他节点的hadoop目录权限不足,这时需要在其他的节点修改hadoop的权限
sudo chown -R uni:uni ./hadoop

启动集群后
image

成功解决 权限不够的问题 但是依然没有 NameNode

3. 查询hadoop启动NameNode运行日志 解决 Directory /usr/local/hadoop/tmp/dfs/name is in an inconsistent state: storage directory does not exist or is not accessible

cd ./logs

进入日志目录,先 ls 查看一下有关namenode的日志文件

比如笔者这里是 cat hadoop-uni-namenode-hadoop101.log

查到的异常如下

Directory /usr/local/hadoop/tmp/dfs/name is in an inconsistent state: storage directory does not exist or is not accessible.

导致原因:很有可能是多次初始化名称节点,导致名称节点的映射发生变化

解决措施: 删除 hadoop目录下的 tmp文件夹后重新启动集群

如果还是没有用,建议检查与hdfs相关的配置文件core-site.xmlhdfs-site.xml,最后我发现是自己的 hdfs-site配置文件没配置... 有点难受

ps : 修改完一个节点的配置文件后,记得使用scp命令传到其他节点哟


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM