YARN HA部署架构

hadoop001: zk rm(zkfc线程)  nm
hadoop002: zk rm(zkfc线程)  nm
hadoop003: zk              nm


RMStateStore: 存储在ZK的/rmstore目录下

ZKFC仅仅是线程

大数据的数据是不能丢的,但是作业是可以挂的,挂了重启即可.因此YARN的架构比较轻量级,HDFS的架构相对来说,比较重量级别.

小结:
当我们RM进程启动后,会向ZK发一个look lck文件,写成功的话,是active状态,写失败,会是standby, rm节点会监控look文件的存在,如果不存在,就会试图创建look文件,谁创建成功,谁就是active状态. 同时,rm会接收client的请求,接收和监控NM的资源状态的汇报,然后负责资源的分配和调度. 然后它(NM)会启动和监控AM.

NM向active汇报后,还会向standby汇报呢?  不需要

ZKFC: 线程,只作为RM进程的一个线程,而非独立的进程存在. 没有必要搞资源的消耗
RMStateStore: 存储在zk的/rmstore目录下. 
1. active的RM会向这个目录写APP信息
2. 当active RM 挂了,另外一个standby RM通过ZKFC选举成功为active,会从/rmstore目录读取相应的作业信息,重新构建作业的内存信息,启动内部的服务,开始接收NM的心跳,构建集群的资源信息,并且接受客户端的作业提交请求


RM 进程:
1. 启动的时候会向ZK的/rmstore目录写lock文件,写成功就为active,否则,就是是tandby. RM节点ZKFC会一直监控(通过心跳)这个lock文件的是否存在,假如不存在,就为active, 否则,就为standby
22: 15 配置 http://hadoop.apache.org/docs/r2.6.5/hadoop-yarn/hadoop-yarn-common/yarn-default.xml
2. 接收client的请求,接收和监控NM的资源状况的汇报,负责资源的分配和调度
3. 启动和监控我们的AM,AM是跑在NM节点的Container上. 
 ApplicationsManager 运行在RM中
 ApplicationMaster   运行在NM中的Container容器里  作业的主程序


NM:
节点资源的管理 启动容器运行task计算    上报资源    汇报task进度


要点:
1. ZKFC是进程还是线程?  线程, HDFS中的是进程
2. /rmstore存储在哪里? 
    yarn.resourcemanager.zk-state-store.parent-path

YARN-HA

猜你喜欢

转载自www.cnblogs.com/suixingc/p/yarn-ha-bu-shu-jia-gou.html