加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

带着问题学习分布式系统之数据分片

发布时间:2018-09-03 02:53:45 所属栏目:教程 来源:xybaby
导读:正文 在前文中,提出了分布式系统(尤其是分布式存储系统)需要解决的两个最主要的问题,即数据分片和数据冗余,下面这个图片(来源)形象生动的解释了其概念和区别: 其中数据即A、B属于数据分片,原始数据被拆分成两个正交子集分布在两个节点上。而数据集C属

上图中NN即NameNode, DN即DataNode(即实际存储数据的节点)。从图中可以看到, 两台 NameNode 形成互备,一台处于 Active 状态,为主 NameNode,另外一台处于 Standby 状态,为备 NameNode,只有主 NameNode 才能对外提供读写服务。

Active NN与standby NN之间的数据同步通过共享存储实现,共享存储系统保证了Namenode的高可用。为了保证元数据的强一致性,在进行准备切换的时候,新的Active NN必须要在确认元数据完全同步之后才能继续对外提供服务。

另外,Namenode的状态监控以及准备切换都是Zookeeper集群负责,在网络分割(network partition)的情况下,有可能zookeeper认为原来的Active NN挂掉了,选举出新的ActiveNN,但实际上原来的Active NN还在继续提供服务。这就导致了“双主“或者脑裂(brain-split)现象。为了解决这个问题,提出了fencing机制,也就是想办法把旧的 Active NameNode 隔离起来,使它不能正常对外提供服务。具体参见这篇文章。

MongoDB元数据

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读