目录一、HDFS 部分1. HDFS 的 NameNode、DataNode、SecondaryNameNode 各自作用2. HDFS 块损坏corrupt block/ 缺失块missing block怎么处理3. NameNode 宕机如何恢复4. HDFS 磁盘满了会发生什么如何处理5. 小文件过多对 HDFS 有什么影响解决方案6. safeMode 安全模式什么时候进入如何退出二、YARN 资源调度7. YARN 三大组件 RM、NM、AM 作用8. 任务跑失败一般排查哪些地方9. YARN 任务一直 Pending 不启动原因10. OOM 内存溢出map 和 reduce 任务分别怎么调11. 什么是数据倾斜现象、怎么定位、怎么解决三、HBase12. HBase RegionServer 挂掉会发生什么13. HBase 大量 Compaction影响业务怎么处理四、集群运维 故障综合题14. DataNode 频繁掉线可能原因15. 集群读写整体变慢排查思路16. HA 高可用简单说下 HDFS‑HA 原理17. fsimage 和 edits 的区别五、小技巧定位偏向运维、故障排查不深挖源码重点覆盖 HDFS、YARN、HBase 三大组件聚焦故障现象与处理思路。一、HDFS 部分1. HDFS 的 NameNode、DataNode、SecondaryNameNode 各自作用NameNode元数据管理者负责保存文件目录、块位置映射接收客户端读写请求、管理副本策略。DataNode实际存储数据块block执行数据读写操作定期向 NameNode 上报块报告。SecondaryNameNode并非 NameNode 的备份主要作用是合并 fsimage 和 edits 日志生成检查点辅助元数据备份不能直接接管主节点。2. HDFS 块损坏corrupt block/ 缺失块missing block怎么处理使用hdfs fsck /命令检查区分 corrupt块损坏和 missing副本全部丢失。若存在健康副本集群会自动复制修复也可使用hdfs fsck -move将损坏文件移到/lostfound隔离等待副本重建。若全部副本丢失确认业务可舍弃后使用hdfs dfs -rm删除文件并用hdfs fsck -delete清理元数据。排查 DataNode 磁盘硬件、磁盘报错日志修复底层故障。注意当损坏块是最后一个有效副本时代表该文件所有副本全部损坏原始数据已经丢失HDFS 无法自动修复。人工处理步骤使用hdfs fsck -list‑corruptfileblocks定位全部损坏文件检查是否 DataNode 节点离线尝试重启 DN等待 DN 重新注册、上报块报告如果磁盘数据还在块就恢复正常不再 CORRUPT怀疑存在假损坏hdfs dfsadmin -report#查看DN存活状态、磁盘失败Volume只有节点磁盘彻底损坏、块文件物理损坏才是真的不可恢复如果有快照、distcp 外部备份优先恢复备份数据hdfs dfs -rm /path/corrupt_file#删除损坏文件hadoop distcp hdfs://backup‑nn:8020/path /path#从备份集群拉回数据数据无法恢复时可以使用fsck‑move把损坏文件移动到/lostfound隔离hdfs fsck /path/corrupt_file -move业务确认数据废弃使用fsck‑delete删除损坏文件消除告警严禁直接对根目录执行‑deletehdfs fsck /path/corrupt_file -delete# 只删除单个损坏文件推荐不要直接 hdfs fsck / -delete 全局执行3. NameNode 宕机如何恢复HA 集群自动切换 Standby NameNode 成为 Active业务基本无感知。非 HA 集群利用 SecondaryNameNode 合并后的 fsimage恢复元数据重启 NameNode。恢复完成后执行hdfs fsck校验块完整性。4. HDFS 磁盘满了会发生什么如何处理现象当集群大量 DN 的磁盘写满集群整体可用存储耗尽读不受影响写操作受限副本复制、块平衡、EC 重建任务全部无法执行副本不足块大量累积Under‑replicated当副本的块占比低于阈值此时 NameNode 会进入安全模式HDFS 整体不可写。处理方法1清理临时文件和无用数据删除过期数据或重复小文件hdfs dfs -rm -r /tmp/xxxhdfs dfs -expunge# 清空回收站释放真正磁盘空间不执行 expunge删除文件还在回收站磁盘不会释放⚠️重点HDFS 删除文件只是移到回收站.Trash不会立刻释放磁盘必须清空回收站磁盘空间才会释放方法2扩容 DataNode 或增加磁盘确认空间释放后退出安全模式。注意dfs.datanode.du.reserved预留空间默认 0生产一定要配置例如设置 10GB磁盘剩余低于这个值该卷就拒绝写入防止磁盘彻底打满导致 DN 崩溃5. 小文件过多对 HDFS 有什么影响解决方案影响每个文件都会占用 NameNode 的元数据内存小文件过多会加大 NameNode 压力同时 MapReduce 会为每个小文件启动任务增加调度开销。业务端合并小文件使用 CombineFileInputFormatHive 自动合并使用 HArchive 归档小文件。6. safeMode 安全模式什么时候进入如何退出进入NameNode 启动时加载元数据期间会自动进入安全模式也可通过hdfs dfsadmin -safemode enter手动进入。退出NameNode 收集到足够 DataNode 块报告、满足最小副本率后自动退出也可通过hdfs dfsadmin -safemode leave手动退出。二、YARN 资源调度7. YARN 三大组件 RM、NM、AM 作用ResourceManager全局资源管理器接收作业分配资源。NodeManager每个节点代理管理本机容器上报资源。ApplicationMaster每个任务自己的 master向 RM 申请资源调度本任务的 container。8. 任务跑失败一般排查哪些地方查看 YARN 页面 application 日志查看 container 日志排查 OOM、代码异常检查资源分配是否不足内存、vcore检查 HDFS 路径是否存在、权限问题排查磁盘满、节点硬件故障。9. YARN 任务一直 Pending 不启动原因集群资源全部被占满队列资源限制、容量调度/公平调度配置问题标签、节点亲和性没有可用节点AM 申请资源过大没有机器满足NodeManager 掉线。10. OOM 内存溢出map 和 reduce 任务分别怎么调map 任务调大mapreduce.map.memory.mb同时调整 map 侧 JVM 堆参数reduce 任务调大mapreduce.reduce.memory.mb同时调整 reduce 侧 JVM 堆参数同时排查数据倾斜避免内存集中到个别任务导致 OOM。11. 什么是数据倾斜现象、怎么定位、怎么解决现象部分 reduce 任务执行极慢大部分任务已经完成个别任务卡在 99%。定位通过 YARN 查看每个 reduce 处理的数据量发现某一个 reduce 接收的数据远大于其他任务。原因key 分布不均匀大量相同 key 被打到同一个 reduce。解决方案业务侧预处理加盐给倾斜 key 增加随机前缀打散小表 mapjoin避免 shuffle调整并行度。加盐给热点 key 拼接一个随机数前缀 / 后缀盐值 salt把 1 个热点 key 拆成多个不同虚拟 key打散到多个 task 并行做局部聚合之后再把盐值去掉做第二次全局聚合得到最终结果也叫两阶段聚合三、HBase12. HBase RegionServer 挂掉会发生什么Zookeeper 检测到 RegionServer 宕机后HMaster 会将该机器上所有 Region 迁移到其他存活的 RegionServer迁移期间相关 Region 会短暂不可访问。13. HBase 大量 Compaction影响业务怎么处理Compaction 合并 HFile会产生大量 IO导致读写延迟升高。处理调整 compaction 策略限制并发在业务低峰期执行调高阈值。四、集群运维 故障综合题14. DataNode 频繁掉线可能原因DN 进程 GC 时间过长超过心跳超时RM/NN 判定死亡网络卡顿心跳不通磁盘 IO 过高进程卡顿磁盘故障、磁盘错误内存配置不合理。15. 集群读写整体变慢排查思路查看监控CPU、磁盘 IO、网络检查 DataNode 是否掉线、块损坏检查 YARN 资源是否耗尽检查是否有大量小文件HBase 查看 compaction 情况查看系统硬件报错日志。16. HA 高可用简单说下 HDFS‑HA 原理两台 NameNode一台 Active一台 Standby通过 QJournal 共享 edits 编辑日志ZKFC 做故障检测Zookeeper 实现主备自动切换。17. fsimage 和 edits 的区别fsimageNameNode 完整元数据快照。edits增量操作日志所有增删改操作写入 edits。NameNode 启动时加载 fsimage并回放 edits 得到最新元数据SecondaryNameNode 负责合并两者生成新的 fsimage。五、小技巧故障题固定话术先看现象看监控看日志评估业务影响优先恢复业务定位根因事后优化加告警。运维重点讲现象 → 排查命令 → 处理步骤 → 根因。