大数据 (003)Hadoop-HDFS namenode的HA --- zookeeper的引出

 

Namenode两大功能:

1、接收客户端读写服务

2、存放元数据(元数据包括fsimage和edits,其中fsimage是namenode格式化时候产生的;edits是运行中实时产生、修改的)

问题一:

上图中NN Active和NN Standby是两个Namenode,其中NN Active为活动的Namenode,NN Standby是备份。

但是两个Namenode都有各自的元数据fsimage,当活动Namenode挂掉之后,由于元数据不一致,NN Standby不能直接接管NN Active

解决方案:

让其中一个Namenode格式化得到元数据后,另一个不要在格式化,直接将之前的元数据拷贝过来。

问题二:

当NN Active挂掉后,直接切换到NN Standby时候,NN Standby并没有edits文件,此时NN Active已经挂掉,无法从NN Active拷贝,这也决定了NN Standby切换过来后不可以直接使用。

解决方案:

方案一:将edits保存至一个共享磁盘中,不再保存至NN Active。但这个方案的不足点在于共享机器挂掉后集群还是挂掉。所以一般不用。

方案二:将edits放入一个内部集群中,其有多副本。(其内部集群就是图中的JournalNodes,一般情况下为两至三台以上服务器组成。其中对edits和fsimage文件的合并也是JournalNodes帮我们做的,其会同时合并NN Active和NN Standby中的fsimage)

注意:datanode给NameNode汇报块消息时需要同时对两个NameNode汇报。

 

上述问题其实描述的都是接管的条件,最终我们还是需要一个接管的控制者,这就是zookeeper

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值