数据岗位面试题更新 2026-08-05

请解释 HDFS 在面对节点故障时的处理机制,特别是当一个 DataNode 发生失效时,系统会经历哪些步骤?

数据风险判断技术原理HDFS

考察说明

考察对 HDFS 高可用和容错机制的理解,特别是 DataNode 故障检测和恢复流程。

回答思路

  1. 【回答框架 1】HDFS 的 DataNode 通过心跳机制向 NameNode 报告状态,默认每 3 秒发送一次心跳。如果 NameNode 连续 10 分钟没有收到某个 DataNode 的心跳,就会判定该节点失效。
  2. 【回答框架 2】DataNode 被判定失效后,NameNode 会将该节点上的所有块副本标记为不可用,并检查这些块的副本因子是否满足要求。若副本数不足,NameNode 会根据副本策略在其他节点上重新复制块,以保证数据冗余。
  3. 【回答框架 3】在重新复制过程中,NameNode 会优先选择负载较低、网络距离较近的节点,并考虑机架感知策略,避免副本集中在同一机架。复制操作由 NameNode 调度,DataNode 间直接传输数据,以减轻 NameNode 压力。
  4. 【回答框架 4】如果集群配置了 HA(高可用)模式,NameNode 的故障转移(Failover)也会用到类似的心跳和健康检查机制,但 DataNode 的失效处理本身不依赖 HA。
  5. 【关键点 1】DataNode 失效检测依赖心跳超时,默认超时时间为 10 分钟,可通过配置调整。
  6. 【关键点 2】NameNode 负责标记失效节点上的块副本,并调度复制,保证副本因子满足要求。
  7. 【关键点 3】重新复制时会考虑机架感知策略,确保数据可靠性和网络效率。
  8. 【易错点 1】误以为 DataNode 失效会立即触发复制,实际需要等待心跳超时,有一定延迟。
  9. 【易错点 2】忽略副本数不足时 NameNode 的复制调度,只提到心跳检测。
  10. 【易错点 3】将 DataNode 的失效处理与 NameNode 的 HA 故障转移混淆。