HA的介绍

目录

一、HA(high availability)的使⽤原因

二、两个Namenode的缺点

三、JournalNode集群的功能介绍

3.1每个journalnode节点都存储编辑⽇志        

3.2 防⽌脑裂的发生

 3.3 journalnode集群正常⼯作的条件

3.4 datanode同时向两个namenode⼼跳反馈

 3.5 journalnode的缺点


一、HAhigh availability)的使⽤原因

1. 问题所在:
        - 计划外的事件,⽐如:单点故障 (SPOF)
        - 计划内的事件,⽐如: namenode 上的硬件或软件升级
2. 解决办法:
        - 使⽤两个 Namenode
                ⼀个是正在⼯作的namenode,可以称之为 Active 节点 ; 另外⼀个 namenode 充当备份节点, 称之为 Standby 节点;当 Active 节点不能使⽤了, Standby 节点会⽴即转为 Active 状态,来 接管集群,使之正常⼯作,这 就是现在的HDFS 的⾼可⽤性,简称 HA 。这种状态的切换,对⽤户来说是透明 的。
        - 注意: standby 节点会执⾏检查点机制,因此不需要配置 secondarynamenode.

二、两个Namenode的缺点

              网络动荡易丢失数据

三、JournalNode集群的功能介绍

3.1每个journalnode节点都存储编辑⽇志        

        为了使备⽤节点保持其状态与活动节点同步,两个节点都与⼀组称为“ JournalNodes” (JN )的单独守护程序进⾏通信。当活动节点执⾏任何命名空间的修改时,它会持久地 将修改记录记录到⼤多数这些JN 中。 Standby 节点会⼀直监视 JN ,以查看编辑⽇志的更 改。当“ 备⽤节点 看到编辑内容更改后,会将其应⽤于⾃⼰的命名空间。发⽣故障转移 时,备⽤节点将确保在将⾃身升级为活动状态之前,已从JounalNodes 读取所有编辑内 容。这样可确保在发⽣故障转移之前,名称空间状态已完全同步。

3.2 防⽌脑裂的发生

-怎么理解脑裂?
        就是Active 节点处于⽹络震荡状态,假死状态, Standby 就转为 Active 。等⽹络 震荡过后,就有两个Active 了,这就是脑裂。

        对于HA群集的正确操作⾄关重要,⼀次只能有⼀个NameNode处于Active状态。否 则,名称空间状态将在两者之间迅速分散,从⽽有数据丢失或其他不正确结果的⻛险。

        为了确保该属性并防⽌所谓的“ 裂脑情况 JournalNode 将⼀次仅允许单个 NameNode成为作者。在故障转移期间,变为活动状态的NameNode 将仅承担写⼊ JournalNodes 的 ⻆⾊,这将有效地防⽌另⼀个NameNode 继续处于活动状态,从⽽使新的 Active 可以安 全地进⾏故障转移。

 3.3 journalnode集群正常⼯作的条件

1)  ⾄少 3 Journalnode 节点
2)  运⾏个数建议奇数个 (3,5,7 )
3)  满⾜( n+1 /2 个以上,才能正常服务。即能容忍( n-1 /2 个故障。

3.4 datanode同时向两个namenode⼼跳反馈

        为了提供快速的故障转移,备⽤节点还必须具有集群中块位置的最新信息。为了实现这一点,DataNodes 被配置了两个 NameNodes 的位置,并向两者发送块位置信息和⼼跳信 号。

 3.5 journalnode的缺点

        在这种模式下,即使活动节点发⽣故障,系统也不会⾃动触发从活动NameNode 到备⽤NameNode 的故障转移,必须需要⼈为的操作才⾏。要是有⼀个能监视 Active 节 点的服务功能就好了。
        这个时候,我们就可以使⽤ zookeeper 集群服务,来帮助我们进⾏⾃动容灾了。

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值