HDFS HA、YARN HA架构

Hadoop官网地址:hadoop.apache.org
Spark官网地址:spark.apache.org

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

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

思考:下面三者的区别
hdfs dfs -ls
hdfs dfs –ls /
hdfs dfs –ls hdfs://ip:9000

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

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

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架构图
HDFS HA、YARN HA架构_第1张图片
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状态。

HDFS HA、YARN HA架构_第2张图片
注意:命名空间不是进程,只是一个参数化的配置项。

YARN HA架构图
HDFS HA、YARN HA架构_第3张图片
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 HA、YARN HA架构)