Linux 上 HDFS 数据故障排查与修复指南
一 快速定位流程
二 常见症状与修复要点
| 症状 | 快速检查 | 修复建议 |
|---|---|---|
| NameNode 无法启动/启动失败 | 查看 namenode.log;核对 dfs.name.dir 与元数据文件 | 从 SecondaryNameNode/备份恢复 fsimage+edits;必要时用 hdfs namenode -recover;若元数据完全丢失且无法恢复,仅能重新格式化(会清空数据,谨慎)。 |
| DataNode 无法注册/频繁掉线 | ping/端口连通性、datanode.log 报错 | 检查 防火墙/网络分区、主机名解析;确认 dfs.datanode.data.dir 磁盘挂载与权限;修复后重启 DataNode。 |
| 集群只读/处于安全模式 | hdfs dfsadmin -safemode get;hdfs dfsadmin -report 看副本不足 | 先恢复副本与节点健康,再自动退出;紧急且确认安全时再 -safemode leave。 |
| 块丢失/损坏(Corrupt Blocks) | hdfs fsck / -list-corruptfileblocks | 优先从业务侧恢复或重跑任务;无法修复时再 -delete 清理损坏文件;随后补充副本:hdfs fsck / -repair(或按文件/目录修复)。 |
| 磁盘故障/容量不足 | df -h、DataNode 日志报 DiskError | 更换磁盘并更新 dfs.datanode.data.dir;将坏盘从 dfs.datanode.failed.volumes.tolerated 允许范围内剔除;扩容或清理空间后恢复写入。 |
| 客户端写入/读取异常 | 客户端报错、超时;核对 core-site.xml/hdfs-site.xml | 确认客户端指向正确的 NameNode RPC 地址;排查 网络/权限/块不一致;必要时调整超时与重试参数。 |
三 关键命令清单
四 数据恢复与回滚策略
五 注意事项与风险提示