这个问题让我花了很长时间才解决,在这里记录一下踩过的坑。网上的很多办法都是解决Datanode各个节点都无法启动的办法,所以尝试了很多都不管用。解决此问题步骤为:
1. 先执行stop-all.sh暂停所有服务
2. 将所有Salve节点上的tmp(即 hdfs-site.xml 中指定的 dfs.data.dir 文件夹,DataNode存放数据块的位置)、 logs 文件夹删除 , 然后重新建立tmp , logs 文件夹
3. 将所有Salve节点上的/etc/hadoop/下的core-site.xml删除,将master节点的core-site.xml文件拷贝过来,到各个Salve节点
scp etc/hadoop/core-site.xml slave:/home/hadoop/local/hadoop-3.1.1/etc/hadoop/
4. 重新格式化: hadoop namenode -format
5. 启动:start-all.sh
其中第三步是重点,其它几步之前也试过但是都没有解决问题,用了第三步之后重启立刻就行了。
PS:还有就是我刚开始配置的没有学习到正确的方法,在主节点上的hadoop文件配置好之后应该把整个hadoop文件用scp命令分发到子节点,这样就应该就不会出现上面的错误。