快速响应的总体思路
常见故障与快速处置清单
| 故障场景 | 快速判断 | 立即动作 | 验证与后续 |
|---|---|---|---|
| NameNode 不可用(非HA) | 访问 50070/9870 失败、进程挂、磁盘/编辑日志异常 | 查看 NameNode 日志定位 OOM/磁盘/编辑日志异常;若 fsimage+edits 完好,先备份再重启;必要时用 SecondaryNameNode 的检查点加速恢复;启动后若卡在 Safe Mode,在确认安全后执行 hdfs dfsadmin -safemode leave |
观察 hdfs dfsadmin -report 与 hdfs fsck / 健康度,确认 Block 安全复制比例达标 |
| NameNode HA 切换/脑裂 | ZK 会话过期、Active/Standby 状态异常 | 检查 ZooKeeper 会话与网络分区;确认 Active 写入路径;必要时在 Standby 上执行 hdfs haadmin -failover --forcefence --forceactive <svc>,并隔离旧 Active |
复核 JournalNode 一致性、共享编辑日志落盘;恢复后回放审计与业务核对 |
| DataNode 宕机/慢盘 | hdfs dfsadmin -report 显示 Decommissioning/Stale 或磁盘错误 |
先隔离故障盘/节点;确认 心跳与块报告恢复;按需调整 副本数 并触发 块复制 | 观察 Under-Replicated Blocks 清零,读/写延迟恢复 |
| 块损坏/校验和不一致 | hdfs fsck 报 Corrupt blocks |
先定位受影响文件与块;优先从其他副本自动恢复;必要时对特定路径执行 hdfs debug recoverLease <path> -retries <n> |
复检 hdfs fsck 直至 Corrupt blocks=0 |
| 误删文件 | 回收站/快照启用 | 从 回收站 hdfs dfs -ls /user/<user>/.Trash 恢复;或基于 快照 hdfs dfs -cp <snap>/. <dst> 回滚 |
复核权限与配额,完善回收站保留策略 |
| 启动卡在 Safe Mode | 启动阶段长时间不退出 | 确认 最小副本数与 安全复制比例;若数据确实不足,临时调低 dfs.safemode.threshold-pct 并尽快补齐副本;数据达标后恢复阈值并 safemode leave |
持续观察 Blocks with only decommissioned replicas 等指标清零 |
| 以上动作依赖 HDFS 的心跳/块报告、安全模式、副本自动补齐、坏块校验与修复、回收站/快照等内置机制,配合命令行工具即可快速落地。 |
关键命令与操作要点
hdfs dfsadmin -report、hdfs fsck / -files -blocks -locations,关注 Under-Replicated Blocks、Corrupt blocks、Missing replicas。hdfs dfsadmin -safemode get/leave/forceExit,仅在确认数据安全复制比例达标后退出。hdfs fsck <path> -files -blocks -locations 定位;hdfs debug recoverLease <path> -retries <n> 强制恢复租约/副本。hdfs dfs -ls /user/<user>/.Trash 恢复;hdfs dfs -createSnapshot <dir> <snap>、hdfs dfs -cp <snap>/. <dst> 回滚。hdfs dfs -setrep -w <rep> <path> 加速副本补齐;跨集群/跨目录用 DistCp 恢复或回灌数据。高可用与预防配置