NN(主节点)描述数据的数据 --内存里
为了保证元数据的安全—将内存中的数据存放到磁盘中----叫持久化
当我们的集群因断电等特殊原因产生问题的时候,问题解决,重新开机,会去磁盘上读取元数据,恢复到断电前的状态;
NN不能进行持久化的原因
可以做:需求小,占用内存少,不影响计算效率
不可以做:NN本身工作已经很多,有可能在持久化的过程中宕机;
备注:SNN永远无法取代NN的位置,他只是NN的一个热备。
集群启动的时候会产生一个日志
1)edits.log ---- 存放系统在运行过程中产生的操作信息
2) fsimage — 存放系统自己的日志
由图所示:循环进行反复执行整个过程就叫做持久化;
触发条件:3600S或者edits的大小超过64M
总结:持久化是不是就是将NN的元数据写入到磁盘中进行存储,当NN挂了之后重启的时候回去磁盘取相应的元数据,恢复集群的状态 ----(内存断电丢失)
断电:
1)持久化之前 —再次启动,读取系统日志
2) 持久化之后 —读取磁盘中的数据 恢复状态
重复的断电
注意:会产生的问题