YARN将共享存储系统抽象成RMStateStore,以保存恢复ResouceManager所必须的信息,包括:
Application状态信息ApplicationState。内部包含应用程序提交描述信息context、提交时间submitTime、拥有者user三个字段
Application对应的每个ApplicationAttempt信息ApplicationAttemptState。内部包含attemptId、所在Container的信息masterContainer、安全Token三个字段
安全令牌相关信息RMDTSecretManagerState。内部包含delegateionTokenState、masterKeyState、dtSequenceNumber三个字段
ResouceManager并不会保存已经分配给每个ApplicationMaster的资源信息和每个NodeManager的资源使用信息,这些均可通过相应的心跳汇报机制重构出来,也正因如此,ResouceManager HA的实现是非常轻量级的。
ResouceManager提供了四种RMStateStore实现(管理员可通过参数yarn.resourcemanager.store.class设置采用的RMStateStore实现类),分别是NullRMStateStore(不存储任何状态信息,在不启动恢复机制时,它是默认实现的)、MemoryRMStateStore(将状态信息存储到内存中,在启用恢复机制时,它是默认实现的)、FileSystemRMStateStore(将状态信息存储到HDFS中)、ZKRMStateStore(将状态信息存储到zookeeper中),从目前来看YARN HA最佳实践是采用基于ZKRMStateStore的共享存储方案
目前ResouceManager的容错机制涉及到的流程有
1、ResouceManager
YARN HA实现和原理
最新推荐文章于 2024-08-13 22:40:30 发布
本文介绍了YARN的高可用性(HA)实现,包括RMStateStore的四种实现,如ZKRMStateStore,以及Resourcemanager的容错机制,如应用程序状态的保存与恢复,确保在故障发生时能够快速重建资源分配信息。
摘要由CSDN通过智能技术生成