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

请阐述在 Apache Hadoop YARN 中实现任务高可用性的方法,并列举常见的解决方案。

数据风险判断技术原理Apache Hadoop YARN

考察说明

考查对 YARN 高可用性机制的理解,包括 ResourceManager 和 NodeManager 层面的容错方案。

回答思路

  1. 【回答框架 1】YARN 的高可用性主要针对 ResourceManager(RM),因为 RM 是整个集群的资源调度中心,一旦失效,整个集群的任务提交和资源分配都会中断。解决思路是采用主备架构,即 Active/Standby RM,通过共享存储或 Zookeeper 协调状态,实现故障自动切换。
  2. 【回答框架 2】常见的方案是配置 ResourceManager HA,使用 Zookeeper 存储 RM 的状态信息,包括应用列表和令牌等。Active RM 将状态更新到 Zookeeper,Standby RM 监听 Zookeeper,当 Active 失效时,Standby 通过 Zookeeper 选举成为新的 Active,从而实现自动故障转移。
  3. 【回答框架 3】对于 NodeManager(NM),其高可用性通常通过任务重试和容错机制实现。当 NM 失效时,其上运行的任务会被 RM 重新调度到其他节点。对于 ApplicationMaster(AM),可以启用 AM 重启机制,由 RM 重新启动 AM,并从上次保存的状态恢复任务进度。
  4. 【回答框架 4】此外,还可以通过配置 YARN 的恢复功能,使 RM 在重启后能够恢复之前的状态,包括已提交的应用和运行中的任务。这需要将 RM 的状态存储到文件系统或 Zookeeper,并定期保存。
  5. 【关键点 1】YARN HA 核心是 ResourceManager 的主备切换,使用 Zookeeper 实现故障检测和自动选举。
  6. 【关键点 2】NodeManager 故障通过任务重试和重新调度实现容错。
  7. 【关键点 3】ApplicationMaster 支持重启,从上次保存的状态恢复。
  8. 【关键点 4】RM 状态持久化到共享存储(如 Zookeeper、HDFS),支持重启恢复。
  9. 【关键点 5】开启 YARN 的自动故障切换需要配置 active-standby 和 Zookeeper 连接信息。
  10. 【易错点 1】仅配置 RM HA 并不能保证所有任务幂等,任务可能重复执行,需要应用层保证幂等性。
  11. 【易错点 2】状态存储的延迟和一致性可能影响切换时的性能和正确性,需要权衡。
  12. 【易错点 3】AM 重启可能丢失部分未保存的进度,导致任务回滚,需合理设置状态保存频率。