HDFS 2.X
资源:
hadoop(二):hdfs HA原理及安装 - 天戈朱 - 博客园
https://www.cnblogs.com/tgzhu/p/5790565.html
Facebook AvatarNode:Facebook有强大的运维做后盾,所以Avatarnode只是Hot Standby,并没有自动切换,当主NN失效的时候,需要管理员确认,然后手动把对外提供服务的虚拟IP映射到Standby NN,这样做的好处是确保不会发生脑裂的场景。其某些设计思想和Hadoop 2.0里的HA非常相似,从时间上来看,Hadoop 2.0应该是借鉴了Facebook的做法
- Facebook AvatarNode 原理示例图
- PrimaryNN与StandbyNN之间通过NFS来共享FsEdits、FsImage文件,这样主备NN之间就拥有了一致的目录树和block信息;而block的位置信息,可以根据DN向两个NN上报的信息过程中构建起来。这样再辅以虚IP,可以较好达到主备NN快速热切的目的。但是显然,这里的NFS又引入了新的SPOF
- 在主备NN共享元数据的过程中,也有方案通过主NN将FsEdits的内容通过与备NN建立的网络IO流,实时写入备NN,并且保证整个过程的原子性。这种方案,解决了NFS共享元数据引入的SPOF,但是主备NN之间的网络连接又会成为新的问题
- hadoop2.x之后,Clouera提出了QJM/Qurom Journal Manager,这是一个基于Paxos算法实现的HDFS HA方案,它给出了一种较好的解决思路和方案,示意图如下:
(1)一个集群可以存在多个NN,但是一个集群中只能有一个NN正在工作。其中正在工作的NN称为Active NN;没有工作的NN为Standby NN
(2)Standby NN的主要作用就是防止单点故障,它会在主NN换掉的一瞬间接管主NN的数据
为了完成接管工作
(1)Standby NN和Active NN同时接受DN的汇报(汇报内容是Block 的位置信息)
(2)在Active NN工作的时候会产生edit 文件也就是日志文件,为了进行接管,则日志文件就不能只存在Active 的磁盘上。就需要通过共享的形式,让Standby NN也可以访问到Edit文件,可以进行相应的恢复与记录
NameNode 功能
(1)接收客户端的读写
(2)存放元数据