Hadoop启动时,没有启动DataNode

1、问题

有时候Hadoop没关闭就格式化NameNode,经常会出现没有启动 DataNode 的情况
在这里插入图片描述

2、原因

当我们使用 hadoop namenode -format 格式化 NameNode 时,会在 NameNode 数据文件夹(这个文件夹为自己配置文件中 dfs.name.dir 的路径)中保存一个 current/VERSION 文件,记录 clusterID,DataNode 中保存的 current/VERSION 文件中的 clustreID 的值是上一次格式化前保存的 clusterID,这样,DataNode 和 NameNode 之间的ID不一致,导致启动 DataNode 的情况

3、解决办法

3.1 删除 dfs 文件夹(dfs文件夹中没有重要的数据)

dfs 目录在 ${HADOOP_HOME}/tmp/,删除后重新格式化 namenode ,再启动服务就可以看到 datanode 出现了
在这里插入图片描述

3.2 复制 clusterID(dfs文件夹中有着重要的数据)

在 ${HADOOP_HOME}/tmp/dfs/name 目录下找到一个 current/VERSION 文件,记录 clusterID 并复制。
在这里插入图片描述
然后 ${HADOOP_HOME}/tmp/dfs/data 目录下找到一个 current/VERSION 文件,将其中 clustreID的值替换成刚刚复制的 clusterID 的值即可
在这里插入图片描述
jps 一下,DataNode 出现啦
在这里插入图片描述

4、总结

每次运行结束 Hadoop 后,都要执行 stop-all.sh 关掉Hadoop所有服务。下次想重新运行 Hadoop,不用再格式化 NameNode ,直接启动 Hadoop 即可

猜你喜欢

转载自blog.csdn.net/a6661314/article/details/124648197