HDFS原理加强之---HA(高可用)

1、HDFS基本设计架构中,对namenode过于依赖,存在单节点故障问题。

(什么是单节点故障问题:通常分布式系统采用主从结构,一个主主节点连接多个从节点。主节点负责分发任务,从节点负责处理任务;当主节点发生故障时,会导致真各个系统发生故障,这种故障叫做单节点故障问题。

2、HDFS中的HA机制:通过双namenode消除单点故障。

(1)namenode的作用:记录元数据、日志,其他职责(副本维护、分发任务、负载均衡、监听心跳等)。

(2)正常工作状态下,namenode处于active状态,当namenode宕机,standby namenode马上切换到active状态,消除单点故障问题。

3、如何立刻得知namenode假死或死亡?

心跳机制3s/次,可能会有数据丢失的风险;需要借助zookeeper进行监控。

(1)实现一个状态管理模块,常驻在每一个namenode所在节点;

(2)每一个模块负责监控自己所在节点的namenode,利用zookeeper进行状态标识;

(3)当namenode死亡(或者假死),standby namenode立刻切换到active状态;
(假死:可能因为网络问题,两个都处于active状态,standby namenode启动后,会杀死namenode)
(standby namenode获得的元数据信息必须和namenode中的相同)

(4)日志存放在共享机器上,为保证高可用,会放在分布式集群中的不同机器上(容错机制);

(5)standby namenode充当Secondary namenode的角色,定期从集群中下载日志,定期合并形成fsimage文件,序列化为FsImage内存对象。

HDFS原理加强之---HA(高可用)