hdfs和yarn HA 架构图梳理和总结

1.hdfs HA 架构图梳理

在这里插入图片描述
HA使用active NN, standby NN两个节点解决单点问题。两个NN节点通过JN(JournalNode)集群,
共享状态,通过ZKFC选举active,监控状态,自动备援。DN会同时向两个NN节点发送心跳。

各个组件的作用

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

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

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

ZKFC(zookeeperFailoverControl) :
监控NN的健康状态
向ZK集群定期发送心跳 ,让自己被选举,当自己被ZK选举为主时,zkfc进程通过rpc调用让nn转换为active状态

当active的NameNode出现故障时,如何启用standby的NameNode

1.手动切换,通过hdfs haadmin -transitionToActive ,将给定NameNode的状态转换为Active
2.自动切换,要使用自动切换,则需要引入一个ZKFailoverController(ZKFC)的进程和ZooKeeper的一个组件。ZKFC定期执行健康检查命令,监控NameNode状态,并与zk建立长久回话,当active状态的NameNode发生故障时,zk进行选举,并通知对应ZKFC把NameNode由standby切换为active状态。

NameNode之间是如何保持数据同步的

接受到Client的请求时NameNode先将日志写入editslog中,并将日志写入JournalNodes集群,Standby NameNode读取JournalNode集群中的日志,并进行操作重演。并且DataNode定期想两个NameNode发送心跳和块报告。以此保证了NameNode之间的数据同步

standbyNN和secondaryNN有什么区别

在2.x版本中才引入StandbyNameNode,从journalNode上拷贝的。StandbyNameNode是可以做namenode的备份。
在1.x版本中,SecondaryNameNode将fsimage跟edits进行合并,生成新的fsimage文件用http post传回NameNode节点。
SecondaryNameNode不能做NameNode的备份。

2.yarn HA 架构图梳理

在这里插入图片描述

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

  • ApplicationsManager 运行在RM节点
  • ApplicationMaster 运行在NM节点 container容器里 作业的主程序

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

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

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

3总结hdfs yarn HA架构区别

1.ZKFC:HDFS中ZKFC作为单独的进程,Yarn中ZKFC是RM中的线程
2.从节点HDFS中的DataNode 会向两个NameNode同时发送心跳。Yarn中NodeManager只会向activeRM上报资源

4.双写的理解

spark–>HBase+es(Elasticsearch)

hbase提供存储,es 提供快速查询与统计

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值