介绍
由于edits记录了集群运行期间所有对HDFS的相关操作,所以这个文件会很大。集群关闭后再次启动时会将Fsimage,edits加载到内存中,进行合并,恢复到集群的。由于edits文件很大所有,集群再次启动时会花费较长时间。为了加快集群的启动时间,所以使用secondarynameNode辅助NameNode合并Fsimage,editsfsimage与edits的合并时机取决于两个参数
第一个参数:时间达到一个小时fsimage与edits就会进行合并
dfs.namenode.checkpoint.period:3600
第二个参数:hdfs操作达到1000000次也会进行合并
dfs.namenode.checkpoint.txns:1000000
还有一个参数是每隔多长时间检查一次hdfs的操作次数
dfs.namenode.checkpoint.check.period :60
作用
SecondaryNamenode周期性复制NameNode的Fsimage和edits到SecondaryNamenode本机,将两个
文件进行合并,最终生成全新的Fsimage,将最新的Fsimage发送回Namenod
意义
辅助NameNode合并Fsimage edits.减小了日志的大小,加快了集群的二次启动速度
步骤
1.secnonaryNN通知NameNode切换edits
2.secondaryNN从NameNode中获得FSImage和edits(通过http方式)
3.secondaryNN将FSImage载入内存,然后开始合并edits与FSimage,合并之后成为新的FSimage
4.secondaryNN将新的Fsimage发回给NameNode
5.NameNode用新的FSimage替换旧的FSimage,新的edits替换旧的edits