ResourceManager(RM)负责跟踪集群中的资源,并调度应用程序(例如MapReduce作业)。
在Hadoop 2.4之前,ResourceManager是纱线集群中的单一故障点。
高可用性特性以活动/备用资源管理器对的形式添加冗余,以删除此故障点。
原理图
配置过程
管理命令
ResourceManger Restart
NodeManagers和客户端在RM关闭期间将保持对RM的轮询,直到RM启 动。当启动后,RM将通过心跳机制向正在与其会话的NodeManager和
ApplicationMasters发送同步指令。目前NodeManager和ApplicationMaster 处理该指令的方式为:NodeManager将杀死它管理的所有容器然后向RM 重新注册,对于RM来说,这些重新注册的NodeManager与新加入的
NodeManager相似。ApplicationMasters在接收到RM的同步指令后,将会 关闭。在RM重启后,从状态存储中加载应用元数据和认证信息并放入 内存后,RM将为每个还未完成的应用创建新的尝试。正如之前描述的
,此种方式下之前正在运行的应用程序的工作将会丢失,因为它们已经 被RM在重启后使用同步指令杀死了
ResourceManager重启可以划分为两个阶段。
- 第一阶段,
增强的ResourceManager(RM)将应用程序的状态和其它认证信息保存到一个插入式的状态存储中。
RM重启时将从状态存储中重新加载这些信息,然后重新开始之前正在运行的应 用程序,用户不需要重新提交应用程序。 - 第二阶段,
重启时通过从NodeManagers读取容器的状态和从ApplicationMasters读取容器的请求,集中重构RM的运行状态。与第一阶段不同的是,在第二阶段中,之前正在运行的应用 程序将不会在RM重启后被杀死,所以应用程序不会因为RM中断而丢失工作。