问题详述:
当我多次通过以下指令格式化NameNode之后,
#格式化NameNode#
./bin/hdfs namenode -format
导致我在JPS查询时发现DataNode无法启动
问题原因:
多次进行NameNode格式化,导致 NameNode 和 DataNode 的集群 id 不匹配 DataNode 无法启动。
详细来讲就是:当我们使用./bin/hdfs namenode -format
格式化NameNode时,会在NameNode数据文件夹(这个文件夹为自己配置文件中dfs.name.dir的路径)中保存一个current/VERSION文件,记录clusterID,DataNode中保存的current/VERSION文件中的clustreID的值是第一次格式化保存的clusterID,这样,DataNode和NameNode之间的ID不一致。
解决方案:
如果没有重要文件,就可以直接删除之后重新格式化再启动即可,代码如下:
# 关闭hadoop
./sbin/stop-dfs.sh
# 删除tmp文件
rm -rf ./tmp
# 重新进行NameNode格式化
./bin/hdfs namenode -format
# 重启hadoop
./sbin/start-dfs.sh
通过以上代码即可解决问题,亲测