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

本文探讨了Hadoop中Namenode的高可用性机制,包括如何解决活动Namenode故障后的元数据同步问题,以及通过JournalNodes进行edits文件的管理和合并。还介绍了Zookeeper在实现Namenode切换中的作用。

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

 

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值