hadoop HA 架构

本文详细介绍了Hadoop HA架构,包括HDFS和YARN的HA实现。在3台机器的集群中,配置两个NN节点进行实时备份,通过Journal Node和ZKFC进行状态共享和选举。YARN HA中,ResourceManager通过ZKFC进行主动/备用切换,确保集群的高可用性和无感知切换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

集群的好处:

每一个角色都是一个进程; 

HDFS:NN(老大),SNN,DN

YARN:RM(老大),NM

老大挂了怎么办? 

大数据所有的组件都是主从架构的 master-slave 

比如,hdfs读写请求都是先NN节点,但是hbase 读和写的请求不经过老大master,建表语句经过

一般配置两个NN节点(实时的,任何时刻只有一台对外,另外一台standby 做实时备份 随时准备着从standby切换到active状态,对外服务)  NN1,NN2

配2个NN节点后,SNN就没有必要了

两个NN节点的切换是无感知的,可以来回切换

命名空间  nameservice1  CDH

                dw                    

 

NN: fsimage editlog 读写请求记录

HA的进程: 3台机器的情况下

hadoop001: ZK  NN  ZKFC JN  DN

hadoop002:  ZK  NN ZKFC JN    DN

hadoop003:  ZK   JN  DN

 

Journal Node:生产上部署需要考虑hdfs的数据量和请求量,小文件多的话jn搞多一些

ZK集群  部署2n+1台 选举 谁做老大 standby

20台节点:5台zk

但是,不是说zk节点越多越好,越多选举时会变慢

 

生产上,部署zk的机器就只部署zk一个进程

架构流程:

 

HA是为了解决单点问题
通过JN集群共享状态
通过ZKFC选举active
监控状态,自动备援。
DN: 同时向NN1 NN2发送心跳和块报告。
ACTIVE NN: 操作记录写到自己的editlog
                     同时写JN集群
                     接收DN的心跳和块报告
STANDBY NN: 同时接收JN集群的日志,显示读取执行log操作(重演),
                        使得自己的元数据和active nn节点保持一致。
                        接收DN的心跳和块报告

JounalNode: 用于active standby nn节点的同步数据
                     一般部署2n+1

ZKFC: 单独的进程
           监控NN监控健康状态
           向zk集群定期发送心跳,使得自己可以被选举;
           当自己被zk选举为active的时候,zkfc进程通过RPC协议调用使NN节点的状态变为active,
           对外提供实时服务,是无感知的。

 

YARN HA

hadoop001: zk  rm(zkfc)   nm

hadoop002: zk  rm(zkfc)   nm

hadoop003: zk  nm


ZKFC: 线程  
只作为RM进程的一个线程而非独立的进程存在

RMStateStore: 
存储在zk的/rmstore目录下。
1.activeRM会向这个目录写APP信息
2.当activeRM挂了,另外一个standby RM通过
ZKFC选举成功为active,会从/rmstore读取相应的作业信息。
重新构建作业的内存信息,启动内部的服务,
开始接收NM的心跳,构建集群的资源信息,并且接收客户端的作业提交请求。

1.启动时候会向ZK的/rmstore目录写lock文件,写成功就为active,否则standby.
rm节点zkfc会一直监控这个lock文件是否存在,假如不存在,就为active,否则为standby.
2.接收client的请求,接收和监控NM的资源状况的汇报,负载资源的分配和调度。
3.启动和监控APPMASTER on NM节点的container。
applicationsmanager RM
applicationmaster   NM container容器里  作业的主程序
 


RM:
1.启动时候会向ZK的/rmstore目录写lock文件,写成功就为active,否则standby.
rm节点zkfc会一直监控这个lock文件是否存在,假如不存在,就为active,否则为standby.
2.接收client的请求,接收和监控NM的资源状况的汇报,负载资源的分配和调度。
3.启动和监控APPMASTER on NM节点的container。
applicationsmanager RM
applicationmaster   NM container容器里  作业的主程序

NM:
节点资源的管理  启动容器运行task计算  上报资源 


 

面试点:

1.ZKFC是线程

2./rmstore存储在哪里?

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值