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

请描述 Yarn 中 ResourceManager 的 Failover 机制设计原理,并说明在 ResourceManager 出现故障时,系统通过哪些具体步骤实现高可用?

数据风险判断系统设计技术原理Apache Hadoop YARN

考察说明

考查对 Yarn ResourceManager 高可用机制(Active/Standby 架构、ZK 选主、状态共享和故障切换过程)的理解。

回答思路

  1. 【回答框架 1】Yarn ResourceManager 高可用(RM HA)采用 Active/Standby 架构,多个 RM 节点中只有一个处于 Active 状态提供服务,其余为 Standby 并实时同步元数据。
  2. 【回答框架 2】状态共享依赖 ZooKeeper 或内嵌存储(如 HDFS)保存应用、队列和 token 等状态,Active RM 将周期性写入状态,Standby 不断读取并更新内存,实现热备。
  3. 【回答框架 3】故障检测由 ZooKeeper 或基于 ZK 的选举实现,当 Active RM 心跳超时后,ZK 自动触发 failover,选择下一个 Standby 成为新 Active,并通知各 NodeManager 和客户端更新 RM 地址。
  4. 【回答框架 4】切换过程中,新 Active 需要确保旧 Active 完全退出(fencing),防止脑裂,并恢复未完成的应用和资源分配,期间 Yarn 集群的调度可能短暂停顿。
  5. 【回答框架 5】最终高可用保证是故障自动转移,无需人工干预,但应用重试和客户端重连仍是必要的,以应对秒级切换窗口。
  6. 【关键点 1】RM HA 基于 Active/Standby 架构,实现计算资源管理的高可用。
  7. 【关键点 2】依赖 ZK 完成故障检测与自动选主。
  8. 【关键点 3】Active 与 Standby 通过共享状态存储或 ZK 同步元数据。
  9. 【关键点 4】切换时通过 fencing 防止脑裂。
  10. 【关键点 5】故障切换过程中存在短暂不可用,客户端需重试。
  11. 【易错点 1】不要将 RM HA 等同于 Yarn 整体高可用,其他组件故障仍需单独保障。
  12. 【易错点 2】不能只提 ZK 选主,必须说明状态共享和同步机制。
  13. 【易错点 3】避免遗漏 fencing 机制,它防止新老 Active 同时工作导致状态不一致。