Hadoop HA初识

HDFS HA

架构图如下:
这里写图片描述

HDFS HA使用Active NameNode, Standby NameNode 两个结点解决单点问题,两个节点通过JounalNode共享状态,通过ZKFC 选举Active , 监控状态,自动备援。 DN会同时向ActiveNN和StandbyNN发送心跳。

  1. Active NameNode:
    接受client的RPC请求并处理,同时写自己的Edit log和共享存储上的Edit log, 接收DataNode的Block report, block location updates和heartbeat

  2. Standby NameNode:
    同样会接到来自DataNode的Block report, block location updates和heartbeat。同时会从共享存储的Edit log上读取并执行这些log操作,使得自己的NameNode中的元数据(Namespcae information + Block locations map) 都是和Active NameNode中的元数据是同步的。所以说Standby模式的NameNode是一个热备(Hot Standby NameNode), 一旦切换成Active模式,马上就可以提供NameNode服务

  3. JounalNode:
    用于Active NameNode , Standby NameNode 同步数据,本身由一组JounnalNode结点组成,该组结点基数
    个,支持Paxos协议,保证高可用,是CDH5唯一支持的共享方式(相对于CDH4 促在NFS共享方式)

  4. ZKFC(单独进程):
    a. 监控NN的健康状态
    b. 向ZK定期发送心跳,使自己可以被选举, 当自己被ZK选为主时, active FailoverController通过RPC调用使相应的NN转换为active
    c.自动备援

YARN HA

架构图如下:
这里写图片描述

  1. ResourceManager(RM):
    a. 启动的时候会通过向ZK的/hadoop-ha目录下写一个Lock文件,写成功则成为Active,否则为Standby, Standby RM会一直监控Lock文件是否存在,如果不存在则会试图去创建,即争取成为Active RM。
    b. 接收客户端任务请求,接收和监控NodeManager(NM)的资源情况汇报,负责资源的分配与调度,启动和监控ApplicationMaster(AM)。

  2. NodeManager:
    节点上的资源管理,启动Container运行task计算,上报资源、 container情况汇报给RM和任务处理情况汇报给AM。

  3. ApplicationMaster:
    单个Application(Job)的task管理和调度,向RM进行资源的申请,向NM发出launch Container指令,接收NM的task处理状态信息。

  4. RMStateStore:
    a.RM 的作业信息存储在ZK的/rmstore下, Active RM向这个目录写App信息。
    b.当Active RM挂掉,另外一个Standby RM成功转换为Active RM后,会从/rmstore读取相应的作业信息,重新构建作业
    的内存信息。然后启动内部服务,开始接收NM的心跳,构建集群资源信息,并接收客户端提交作业的请求等。
    5.ZKFC(只作为RM中一个线程而非独立的守护进程来启动):自动故障转移

    扫描二维码关注公众号,回复: 1035896 查看本文章

猜你喜欢

转载自blog.csdn.net/lemonzhaotao/article/details/79518326