HDFS Yarn HA架构图及架构区别

HDFS HA架构图

HDFS HA架构图.jpg

1.各组件说明

  • active nn(NameNode)

接收client的rpc请求并处理,同时自己editlog写一份,也向JN的共享存储上的editlog写一份。
同时接收DN的block report,block location updates 和 heartbeat

  • standby nn(NameNode)

同样会接受到从JN的editlog上读取并执行这些log操作,使自己的NN的元数据和active nn的元数据是同步的,
standby nn是active nn的一个热备(备注:Secondary NameNode是active nn的冷备)。一旦切换为active状态,就能够立即马上对外提供NN角色的服务。
也同时接收DN的block report,block location updates 和 heartbeat

  • jn(JournalNode)

用于active nn,standby nn的同步数据,本身由一组的JN节点组成的集群,该集群内一般部署奇数台(最少3台(CDH)),是支持Paxos协议。
保证高可用。

  • ZKFC

该ZKFC是单独部署的,进程级别
监控nn的健康状态
向zk集群定期发送心跳,让自己被选举,当自己被zk选举为主时,zkfc进程通过rpc调用让nn转换为active状态

2.HDFS HA架构图说明

如果nn是单节点部署,那么该nn节点挂了,就不能提供对外服务
所以需要部署两个nn(active nn + standby nn),任何时候只有1台 active的nn对外,
另外一台是standby 做实时备份,随时准备standby --> active状态,对外提供服务
这个切换过程外界是无感知
两个nn节点通过jn(JournalNode)集群共享状态,通过ZKFC选举active,监控状态,自动备援。
DN(DataNode)会同时向两个NN节点发送心跳。

Yarn HA架构图

Yarn HA架构图.jpg

1.各组件说明

  • ResourceManager(RM)

1.启动时会通过向ZK的/hadoop-ha目录写一个lock文件,写成功则为active,否则standby。
standby RM会一直监控lock文件的是否存在,如果不存在就会尝试去创建,争取为active rm。
2.会接收客户端的任务请求,接收和监控nm的资源的汇报,负责资源的分配与调度,启动和监控 ApplicationMaster(AM)

  • NodeManager(NM)

节点上的资源的管理,启动container 容器 运行task的计算,上报资源,container情况汇报给RM和任务的处理情况汇报给 ApplicationMaster(AM)

  • ApplicationMaster(AM)

运行在nm机器上的container单个application(job)的task的管理和调度,并向rm进行资源的申请,
向nm发出container指令,接收nm的task的处理状态信息。

  • RMstatestore

1.RM的作业信息存储在ZK的/rmstore下,active RM向这个目录写app信息
2.当active rm挂了,另外一个standby rm成功转换为active rm后,会从/rmstore目录读取相应的作业信息,
重新构建作业的内存信息。然后启动内部服务,开始接收NM的心跳,构建集群资源的信息,并接收客户端的提交作业的请求等。

  • ZKFC

自动故障转移,只作为rm进程的一个线程 而非独立的守护进程来启动

HDFS HA 与 Yarn HA 架构的区别?

  • 1.HDFS HA中的ZKFC作为进程存在,而Yarn HA的ZKFC作为线程存在

你可能感兴趣的:(HDFS Yarn HA架构图及架构区别)