Hadoop HA(高可靠)架构原理
阅读原文时间:2021年04月20日阅读:1

使用Zookeeper

  • 概念:
    Zookeeper是一个服务是框架,进行对像hadoop 这样程序的协调服务。Hadoop 中HDFS和Yarn 都存在单点故障,尽管在HDFS中还有SNN进行元数据备份,但每隔60m 一次的checkpoint并不能实现HDFS高容错性的特点,所以使用Zookeeper可以协调Hadoop,以选举的形式实现数据备份,避免单点故障。

*条件:
ZK部署节点个数必须是奇数,即2n +1(n>=0)个,100台以内的集群:7/9个;100台以上的集群:13/15个,ZK的个数并不是和集群台数成线性增长。

HDFS HA 架构原理

  • HDFS HA使用Active NameNode,StandbyNameNode两个结点解决单点问题,两个结点通过JounalNode共享状态,通过ZKFC 选举Active ,监控状态,自动备援。DN会同时向ActiveNN和StandbyNN发送心跳。
  • Active NameNode:接受client的RPC请求并处理,同时写自己的Editlog和共享存储上的Editlog,接收DataNode的Block report, block location updates和heartbeat
  • Standby NameNode:同样会接到来自DataNode的Block report, block location updates和heartbeat,同时会从共享存储的Editlog上读取并执行这些log操作,使得自己的NameNode中的元数据(Namespcaeinformation + Block locations map)都是和Active NameNode中的元数据是同步的。所以说Standby模式的NameNode是一个热备(Hot Standby NameNode),一旦切换成Active模式,马上就可以提供NameNode服务
  • JounalNode:用于Active NameNode,Standby NameNode同步数据,本身由一组JounnalNode结点组成,该组结点基数个,支持Paxos协议,保证高可用,是CDH5唯一支持的共享方式(相对于CDH4 促在NFS共享方式)
  • ZKFC(单独进程)
    a.监控NN的健康状态
    b.向ZK定期发送心跳,使自己可以被选举,当自己被ZK选为主时,active FailoverController通过RPC调用使相应的NN转换为active
    c.自动备援

Yarn HA 架构原理

  • ResourceManager(RM):
    a. 启动的时候会通过向ZK的/hadoop-ha目录下写一个Lock文件,写成功则成为Active,否则为Standby,Standby RM会一直监控Lock文件是否存在,如果不存在则会试图去创建,即争取成为Active RM。
    b.接收客户端任务请求,接收和监控NodeManager(NM)的资源情况汇报,负责资源的分配与调度,启动和监控ApplicationMaster(AM)。
  • NodeManager:
    节点上的资源管理,启动Container运行task计算,上报资源、container情况汇报给RM和任务处理情况汇报给AM。
  • ApplicationMaster:
    单个Application(Job)的task管理和调度,向RM进行资源的申请,向NM发出launch Container指令,接收NM的task处理状态信息。
  • RMStateStore:
    a.RM 的作业信息存储在ZK的/rmstore下,Active RM向这个目录写App信息。
    b.当Active RM挂掉,另外一个Standby RM成功转换为Active RM后,会从/rmstore读取相应的作业信息,重新构建作业的内存信息。然后启动内部服务,开始接收NM的心跳,构建集群资源信息,并接收客户端提交作业的请求等。
  • ZKFC(只作为RM中一个线程而非独立的守护进程来启动):
    自动故障转移

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章