适用范围与前提
本文配合「Hadoop 集群运维」场景,适用于 Hadoop 3.x 的 HDFS 日常巡检。先确认目标 nameservice、客户端配置和认证身份,具备读取管理报告及目标目录的权限。将副本存储与纠删码目录分别记录,并准备业务目录负责人、历史容量曲线和维护计划。示例为待环境验证的只读检查,不包含自动清理。
从集群和节点两层看容量
hdfs getconf -confKey fs.defaultFS
hdfs dfsadmin -report
hdfs dfsadmin -safemode get先确认连接到预期集群,再查看总容量、已用量、剩余量及存活、失联和维护中的 DataNode。集群总体有空闲并不保证每个节点都能继续承接块写入,应记录高水位节点及其磁盘情况。把计划退役和意外失联分开,对照维护窗口确认原因。安全模式若不符合预期,应先调查进入原因。
定位目录增长和配额压力
将路径占位符替换为已确认的业务目录,从有限范围开始:
hdfs dfs -du -s -h '/REPLACE_WITH_DATASET_PATH'
hdfs dfs -count -q -h '/REPLACE_WITH_DATASET_PATH'du 输出应区分文件逻辑长度与实际存储消耗,不能把两列混用。目录配额不足与集群磁盘不足是不同问题。记录同一路径多个时间点的增量,联系业务确认新分区、重复导入、小文件增长及保留周期;快照占用也应纳入核查。容量预测使用环境实测增长率,并为复制恢复和计划维护保留空间,阈值由本集群策略确定。
检查块与副本健康
hdfs fsck '/REPLACE_WITH_DATASET_PATH'
hdfs fsck '/REPLACE_WITH_DATASET_PATH' -list-corruptfileblocks将欠副本、放置不满足策略与缺失或损坏块分开处理。欠副本可能仍能读取,但冗余下降;出现缺失块需要立即确认受影响文件和业务。必要时对已定位的小范围目录使用 -files -blocks -locations 查块位置。命令语义见文末官方指南;本流程不使用 -delete、-move 等修改参数。
按影响与恢复条件排序
先处理影响读取的数据缺失,再处理持续失联节点、容量瓶颈和冗余恢复。对欠副本持续不收敛的目录,核对可用节点、机架、存储类型与目标策略,避免在无法放置时重复提高副本数。对倾斜节点先收集分布与业务负载,再评估单独的均衡变更;清理数据必须明确目录归属、保留规则及可恢复来源。
巡检频率应覆盖业务导入高峰与维护结束后的恢复阶段。为日常汇总设置固定路径清单,对新增异常再逐步深入;不要把无限扩大扫描范围当成提高覆盖率。对同一文件反复出现的异常,关联节点与磁盘记录,保留首次出现时间及每次复查结果。
验收与停止条件
巡检产出应包含采样时间、集群身份、异常节点、受影响路径、责任人和复查时间。处置后复查相同范围,确认缺失块状态、冗余恢复趋势、容量余量及代表性文件读取结果。仅有 HEALTHY 不足以替代容量和冗余指标验收。若详细扫描增加 NameNode 压力,立即停止扩大范围;若出现新丢块或多节点异常,暂停退役、均衡等并发变更,转入事故处置。只读检查本身不需要数据回滚。