ResourceManager是管理资源和调度运行在YARN上的应用程序的中央机构,因此在一个YARN集群中ResourceManager可能是单点故障的,即只存在一个ResourceManager,这样在该节点出现故障时,就需要尽快重启ResourceManager,以尽可能地减少损失。本文将学习ResourceManager重启的特性,该特性使ResourceManager在重启时可以继续运行,并且在ResourceManager处于故障时对最终用户不可见。
ResourceManager重启可以划分为两个阶段。第一阶段,增强的ResourceManager(RM)将应用程序的状态和其它认证信息保存到一个插入式的状态存储中。RM重启时将从状态存储中重新加载这些信息,然后重新开始之前正在运行的应用程序,用户不需要重新提交应用程序。第二阶段,重启时通过从NodeManagers读取容器的状态和从ApplicationMasters读取容器的请求,集中重构RM的运行状态。与第一阶段不同的是,在第二阶段中,之前正在运行的应用程序将不会在RM重启后被杀死,所以应用程序不会因为RM中断而丢失工作。在Hadoop-2.4.0版本中实现了RM重启的第一阶段(第二阶段还未实现)。
由于目前的版本中只实现了RM重启的第一阶段,因此只能对该阶段进行学习。通过上面的综述可知,RM在客户端提交应用时,将应用程序