HDFS在CentOS上的故障恢复流程
一 快速定位与最小恢复
二 常见故障场景与恢复动作
| 场景 | 典型症状 | 快速检查 | 恢复动作 |
|---|---|---|---|
| NameNode 元数据损坏/无法启动 | 启动失败、fsimage/edits 异常 | 查看 namenode.log;检查 dfs.namenode.name.dir 目录 | 从 SecondaryNameNode 或备份恢复 fsimage+edits;若完全丢失,先备份现有元数据再 hdfs namenode -format(会清空命名空间,谨慎) |
| DataNode 宕机/磁盘故障 | Live 节点减少、副本不足触发只读 | hdfs dfsadmin -report;检查 datanode.log 与系统磁盘 | 更换磁盘→更新 dfs.datanode.data.dir→重启 DataNode;剔除故障盘后可用 hdfs dfsadmin -restoreFailedStorage 恢复可用存储 |
| 安全模式异常 | 写入被拒、只读 | hdfs dfsadmin -safemode get;fsck 看 Under-replicated | 先恢复副本/节点,再 hdfs dfsadmin -safemode leave;必要时调低 dfs.namenode.safemode.threshold-pct 或 dfs.namenode.safemode.min.datanodes |
| 块损坏/写入异常 | 客户端报 Cannot obtain block length 或 openforwrite | fsck -list-corruptfileblocks;定位到具体文件/块 | 删除/恢复损坏文件;对异常目录执行 fsck -openforwrite 清理残留写状态;必要时用 DistCp 从备份/其他集群回填 |
| 配置错误/客户端连错NN | 启动失败、访问异常 | 核对 core-site.xml、hdfs-site.xml;检查 /etc/hosts | 恢复备份配置(如 /etc/hadoop/ 下的 XML);确保客户端指向正确 NameNode RPC/HTTP 地址 |
| HA 双备/无法选主 | 访问报 Cannot find any valid remote NN | 检查 ZK、ZKFC、JournalNode | 在 所有 NameNode 上执行 hdfs zkfc -formatZK 后重启服务 |
| 以上动作覆盖生产中最常见的 HDFS 故障面,按“先保命、再修复、后回填”的顺序执行。 |
三 数据一致性与副本修复
四 配置与元数据恢复
五 预防性检查与运维建议