hdfs高可用和联邦机制

HDFS高可用机制HA

hadoop中NameNode非常重要,影响整个集群

在实际应用中,一般有两个NameNode,一个处于Active状态(负责所有客户端的操作),一个Standby状态(等待Active挂掉,实现快速故障切换(如果需要))

他们的元数据肯定要同步一致,Zookeeper实现

 

其中的组件:

ZKFailoverController:基于Zookeeper的故障转移控制器,负责NameNode的主备切换

通过监听NameNode健康状态,当Active出现异常会通过Zookeeper进行一次新的选举,完成standby切换

 

HealthMonitor:周期性调用NameNode的HAServiceProtocol RPC接口(monitor和getServiceStatus)

监控NameNode的监控状态并向ZKF反馈

 

ActiveStandbyElector:接收ZKFC的选举请求,通过zk自动完成主备选举,选举完成后调ZKF的主备切换方法对NameNode进行Active与Standby转态切换

 

DataNode:NameNode的数据块信息通过DataNode主动向Active NameNode和Standby NameNode上报

 

共享文件存储系统:NameNode负责向这个系统(由JournalNode组成)写日志edits文件,StandbyNameNode负责读保持同步

 

我们这里搭建的是非高可用的,实际生成环境中要高可用

 

高可用搭建方法这里不多介绍

 HDFS联邦机制Federation

处理NameNode内存不够的问题,当集群达到一定规模后,内存可能达到上百G

进行横向扩展就是联邦机制

就是允许有多个NameNode,意味着有多个namespace

不同的DataNode归不同的namespace管,用户感觉不出来其中的切换

 

只解决了HDFS Federation问题,没解决单点故障问题,一般集群很大时一般采用:HA+Federation部署方案,也就是每个联合的namespace都是HA(高可用)的

 

 

 

 

 

 

 

猜你喜欢

转载自blog.csdn.net/weixin_46919419/article/details/112465986