HDFS和YARN的HA架构剖析和对比

Hadoop官网地址:hadoop.apache.org

学习 HADOOP 过程中,一般使用伪分布式,使用集群目的是为了学习企业环境中的HA。

HDFS:NN、SNN(checkpoint)、DN
这是单点模式,NN挂了就不能对外提供服务,SNN只是冷备。所以需要两个NN做HA,一个active一个standby,active的NN对外服务,standby的NN做实时备份,随时准备standby顶替active对外提供服务。外界是无感知的。

思考:下面三者的区别

hdfs dfs -ls	
	访问是当前登录用户的家目录  /user/hadoop/
hdfs dfs –ls /
	访问的根目录
hdfs dfs –ls hdfs://ip:9000
	也是访问的根目录,此前缀默认可以不写,配置文件中有。

nameservice:命名空间
挂载着NN1 NN2,读写操作是直接通过命名空间来操作的。
hdfs://nameservice1/

NN:
fsimage 数据块信息、时间、权限等
editlog 读写请求记录

HDFS HA架构

HA有两种方式QJM、NFS

http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWithQJM.html
在这里插入图片描述
QJM:Quorum Journal Manager 最常见。
NFS:网络文件系统,很少用。

经验
JN:至少3台 (2n+1)
ZK:(2n+1)最好单独安装在一些轻量级的服务器上,不建议和其他服务混装,不然导致服务繁忙、相应缓慢。不建议部署台数过多,选举时间会很长。
若集群<=20台:5台
若集群20-100台:7/9/11台
若集群>100台:11台

HDFS HA架构图

在这里插入图片描述
HA使用active NN,standby NN两个节点解决单点问题,两个NN节点通过JN集群共享状态,通过ZKFC选举active,监控状态,自动备援,DN会同时向两个节点发送心跳。
active NN:接收client的rpc请求并处理,同时自己editlog写一份,也向JN的共享存储上写一份,也同时接收DN的block report、block location updates和heartbeat
standby NN:接收从JN的editlog上读取并执行这些log操作,使自己的NN的元数据和active NN的元数据是同步的,也同时接收DN的block report、block location updates和heartbeat。所以说standbyNN是activeNN的热备,一旦切换为active状态,NN马上可以提供服务
JN:用于active NN,standby NN的数据同步,本身由一组JN节点组成的集群,奇数台,支持Paxos协议,保证高可用。
ZKFC:监控NN的健康状态,向zk集群定期发送心跳,让自己被选举,当自己被zk选举为主时,zkfc进程通过rpc调用让NN转换为active状态。

在这里插入图片描述
注意:命名空间不是进程,只是一个参数化的配置项。

YARN HA架构

在这里插入图片描述
RM
a. 启动时会通过zk的/hadoop-ha目录写一个lock文件,写成功则为active,否则standby。
Standby RM会一直监控lock文件是否存在,如果不存在就会尝试去创建,争取成为activeRM
b. 会接收客户端的任务请求,接收和监控NM的资源和汇报,负责资源的分配与调度,启动和监控Applicationmaster(AM)

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

Applicationmaster(AM):运行在NM上的container。
单个Application(job)的task的管理和调度,并向RM进行资源申请,向NM发出launch container指令,接收NM的task处理状态信息。

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

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

生产:一般双写
结果双写:Spark–-> hbase(所有的数据) + es(对外2个月数据)
数据同步双写:A线(延迟了)+ B线(没有延迟,可能耗费资源,平时关闭)比如618

主从架构master->slave
1.DN NM部署在同一个机器上,因为数据本地化
2.大数据生态大部分组件都是主从架构,而zk和kafka是集群架构
注意:hbase组件也是主从架构master->regionserver,但读写流程不经过master。

HDFS和YARN的HA架构对比

相比于HDFS HA:

  1. YARN HA 没有类似JN集群 --> ZK来替代的。
  2. YARN HA 没有ZKFC进程 --> RM进程中的ZKFC线程。
  3. YARN HA 没有DN的多向NN发送心跳 --> NM只向active RM发送心跳。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值