架构图如下:
官网截图;
YARN的单点故障在RM上。YARN的HA架构和HDFS HA类似,需要启动两个ResourceManager,这两个ResourceManager会向ZooKeeper集群注册,通过ZooKeeper管理它们的状态(Active或Standby)并进行自动故障转移。
YARN HA
hadoop001:zk rm(zkfc) nm
hadoop002:zk rm(zkfc) nm
hadoop003:zk nm
ZKFC: 是线程,只作为RM进程的一个线程而非独立的进程存在。
RMStateStore(共享存储):
存储在zk的/rmstore目录下,相当于一个文件夹
1.activeRM会向这个目录写APP(作业)(job)的信息
2.当activeRM挂了,另外一个standby RM通过ZKFC选举成功为active,会从/rmstore读取相应的作业job的信息,去保证高可靠。重新构建作业的内存信息,启动内部的服务,开始接收NM的心跳,构建集群的资源信息,并且接收客户端的作业提交请求。
RM:
1.当RM进程启动的时候会向ZK的/rmstore目录写lock文件,写成功就为active,否则standby.
rm节点zkfc会一直监控这个lock文件是否存在,假如不存在,就为active,否则为standby.
2.RM接收client的请求,接收和监控NM的资源状况的汇报,负责资源的分配和调度。(client通过namespace找rm,如果发现它是standby状态,那么就去用另一个rm)。NM会向active的RM汇报,但是不会向standby的RM汇报。
3.启动和监控ApplicationMaster (它是跑在NM节点的container上面,它是作业job的主程序)。
NM:
节点资源的管理、启动容器运行task计算 、上报资源、汇报进度。