主从集群存在两个独立的问题和解决方案
一般很多技术都是主从结构(最简单的结构)
优点:结构相对简单,主与从协作
“主”是单点,好处有,缺点也有
好处:单点NameNode,数据一致性好掌握
因为一个人管,说一不二的
单点“主”的两个独立的问题
关键词:独立:两套独立的技术/问题,不要混起来学、不要联系起来
主可能会挂/出故障,第一个独立的问题
- 单点故障,导致集群整体不可用
只有一台,而且所有Client的第一步都要到NN,出故障了,整个集群就废了
一台主机的能力是有限的,所有Client都要到NN,第二问独立的问题
- 压力过大,内存受限
实际上,并没有这么不堪,一般的企业也没有那么多数据
所以这个问题在这就不着重讨论,只讲理论的解决方案,就不实现了,实现也比较复杂,以后有机会再讲!!!
以下是解决方案
Hadoop 从1.x升级到2.x时,针对这两个独立的问题提出了独立的技术解决方案
HA高可用方案:解决单点故障导致集群整体不可用问题
HA - 高可用 - HA - High Available
本来,这个NameNode自身就要是高可用的,你想是不是。
现在,这个HA就肯定不只是这个意思了
高可用:增加NN的数量,真正对外服务的Active只有一台,其他的都是备用,只要这个Active出故障了,备用的才会马上顶上去
进行 :主备 切换
小插曲:hadoop 2.x 上线得很匆忙,因为1.x的这个问题,是企业难以接受的,需要尽快解决
所以:2.x的只能支持2个NN,1主1备
2018年的3.x,可1主5备,但官方推荐最多3备,因为要考虑节点间网络通信的成本
Federation联邦机制:解决NN压力过大问题
联邦机制,如果听不懂,换个词:元数据分片(在大数据启蒙中讲过的:分治)
将一台NN的元数据分摊给不同的NN,即:多NN(虽然和上面同是:多NN,但还是那句话,不要混起来)
多台NN同时对外服务,在DN中用不同的子目录分隔不同的NN管理的数据,与不同的Client连接
那么不同NN的元数据是不互通的、隔离的,这是缺点
缓解了NN的压力,这是优点
联邦的语义:说到联邦一词,是不是马上就想到美国的联邦制,就以此为例:州与州之间各玩各的,割裂开了,每个州有各自的玩法
总结
虽然都是多NN,但请记住他们是两套独立的技术,不要联系起来
接下来会详细讨论:HA高可用方案
因为这个HA企业来说很重要,而Federation的需求量没想象的那么多且技术实现比较难和广
Federation 方案可以干什么?简单地说一下为什么复杂!
将多套小集群,合并成一套超大的集群,在分布式的时代中,这个效果是 1+1>2
合并集群,就需要在上层加“抽象层“”,这是涉及到整体设计的问题,技术实现也比较难、比较广