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 即可

本文讲述了当Hadoop NameNode未关闭而格式化时,可能导致DataNode无法启动的问题。原因在于NameNode和DataNode的clusterID不匹配。解决方法包括删除无用的dfs文件夹或复制重要的clusterID。确保每次运行完Hadoop后关闭服务,避免重复格式化。
719

被折叠的 条评论
为什么被折叠?



