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

请描述 HDFS 中保证数据一致性的核心机制,并阐述当出现故障(如节点宕机或网络分区)时,系统采取哪些步骤来恢复数据一致性?

数据系统设计技术原理HDFS

考察说明

考查对 HDFS 一致性模型及故障恢复机制的理解。

回答思路

  1. 【回答框架 1】HDFS 采用写后读一致性模型,通过 NameNode 管理元数据,DataNode 存储数据块。写入时,客户端先写本地临时文件,完成后通过 RPC 通知 NameNode,NameNode 记录块信息,并等待所有副本写入完成才返回成功,确保写入后的数据对所有读者可见。
  2. 【回答框架 2】故障恢复依赖副本冗余和块报告机制。DataNode 周期性向 NameNode 发送块报告,NameNode 检测到副本数不足时,调度复制任务从健康副本复制数据,恢复副本因子。
  3. 【回答框架 3】网络分区或节点故障时,NameNode 通过租约机制管理写操作,防止多个客户端同时写同一文件。若租约过期,NameNode 强制回收租约,并触发块恢复流程,将最后一个块复制到新节点,保证数据一致性。
  4. 【回答框架 4】对于已提交但未完全复制的数据块,NameNode 在启动时进行安全模式检查,统计各块的副本数,若低于阈值,则自动恢复复制,直到满足最小副本要求。
  5. 【关键点 1】写后读一致性:所有副本写入成功后才返回。
  6. 【关键点 2】副本因子与块报告:保证副本数不低于设定值。
  7. 【关键点 3】租约机制:确保同一时刻只有一个写者。
  8. 【关键点 4】安全模式和块恢复:启动时检查并补充缺失副本。
  9. 【易错点 1】不能保证所有副本同时写入,但读操作只读已提交的数据。
  10. 【易错点 2】租约超时可能造成写冲突,需正确处理。
  11. 【易错点 3】故障恢复期间可能短暂不一致,但最终一致。