CentOS环境下HDFS故障排查实战手册
一 快速定位流程
二 常见故障与处理要点
| 症状 | 快速检查 | 处理建议 |
|---|---|---|
| NameNode 无法启动 | 查看 namenode 日志;检查 dfs.namenode.name.dir 与元数据目录权限/磁盘 | 从 SecondaryNameNode 或备份恢复 fsimage+edits;若元数据不可恢复,谨慎执行 hdfs namenode -format(会清空数据) |
| DataNode 启动失败或频繁掉线 | 查看 datanode 日志;检查 dfs.datanode.data.dir 权限/磁盘;核对 /etc/hosts 与 防火墙 | 修复磁盘/权限后重启;若 clusterID 不一致,按日志指引统一 namespaceID 或清理数据目录后重启 |
| 集群只读/无法写入 | 执行 hdfs dfsadmin -safemode get;查看 hdfs fsck / 副本与缺失块 | 先恢复副本与节点,再执行 hdfs dfsadmin -safemode leave;避免强制退出导致数据风险 |
| 写入报错 Cannot obtain block length 或超时 | 查看 DataNode 日志与网络;核对客户端 core-site/hdfs-site 配置是否指向正确 NameNode | 修正客户端配置;排查 DataNode 通信与块状态,必要时恢复不一致块 |
| 块损坏或丢失 | 执行 hdfs fsck / -list-corruptfileblocks;定位受影响文件 | 从备份恢复;无法恢复时删除损坏文件并重导数据 |
| 安全模式无法自动退出 | 检查 副本不足 与 可用 DataNode 数量 | 恢复/扩容 DataNode 与副本;必要时临时调低阈值并修复后恢复策略 |
| 客户端 NoRouteToHostException / 连接被拒 | 检查 /etc/hosts、firewalld/iptables、端口连通性 | 修正解析与路由;放行 HDFS 端口或临时停用防火墙验证 |
| 磁盘故障或容量告急 | 查看 df -h、datanode 日志中 DiskErrorException | 更换坏盘并更新 dfs.datanode.data.dir;容量紧张时先清理回收站/临时目录并扩容 |
三 关键命令清单
四 配置与网络检查要点
五 数据安全与恢复建议