在 CentOS 中格式化 HDFS(Hadoop 分布式文件系统),通常指的是格式化 NameNode。这一步只会清除元数据,不会直接删除 DataNode 上的实际数据块,但集群启动后旧数据可能无法被识别。
⚠️ 警告:格式化会清空 HDFS 元数据,生产环境务必提前备份!
/opt/hadoop 或 /usr/local/hadoop)HADOOP_HOMEcore-site.xmlhdfs-site.xmlhadoop)su - hadoop
cd $HADOOP_HOME
hdfs namenode -format
或旧版本:
hadoop namenode -format
✅ 成功标志:
Storage directory ... has been successfully formatted.
原因:NameNode 和 DataNode 的 clusterID 不一致
解决方式(开发环境):
rm -rf /tmp/hadoop-*
(具体路径看 hdfs-site.xml 中 dfs.datanode.data.dir)
然后重新格式化:
hdfs namenode -format
确保目录属主是 hadoop 用户:
chown -R hadoop:hadoop /opt/hadoop
chmod -R 755 /opt/hadoop
在 hadoop-env.sh 中:
export JAVA_HOME=/usr/java/jdk1.8.0_xxx
start-dfs.sh
验证:
hdfs dfs -ls /
hdfs journalnode -format
hdfs zkfc -formatZK
如果你愿意,可以贴出:
hdfs-site.xml 配置我可以帮你做针对性格式化方案。