这里的第一名称节点类似于数据目录。其主要有两大构件构成,FsImage和Editlog,FsImage用于存储元数据(长时间不更新、Editlog用于更新数据,但是随着时间推移,Editlog内存储的数据越来越多,导致运行速度越来越慢。
所以引入第二名称节点,当第一节点中Editlog到一个临界值时,HDFS会暂停服务,由第二节点将拷贝出Editlog,复制、添加到Fslmage后方并清空原Editlog的内容。这里有一点要注意这种备份是冷备份的形式,即没有实时性,需要停止服务,等数据恢复正常后继续使用。
这是HDFS1.0时候处理名称节点单点故障的方法,因为它是冷备份的,不适用于大数据,所以在2.0时进行了改进。
HA(High Availability)高可用性
HA框架是有两个名称节点,一个是活跃节点一个是待命节点,当活跃节点出现故障时,待命节点直接顶替上去,不需要像1.0的时候那样停止备份再运行。
刚刚知道 名称节点是有Fslmage和Editlog的,那么HA框架是怎么解决待命名称节点Fslmage和Editlog的同步的呢?
活跃节点和待命节点之间存在一个共享存储系统,活跃节点的Editlog文件会实时存放到共享存储系统中,待命节点也会实时的去领取备份。Fslmage是实现管家的功能,在2.0中,数据节点会实时同步的给名称节点和备份名称节点发送数据(例如节点是否存活,正常等),即Fslmage是实时相当的。