第一阶段:namenode启动
1)第一次启动namenode格式化后,创建fsimage和edits文件。如果不是第一次启动,直接加载编辑日志和镜像文件到内存。
2)客户端对元数据进行增删改查的请求
3)namenode记录操作日志,更新滚动日志。(先记录操作,真正执行操作在下一步。因为一旦在对数据增删改查时电脑出现断电,后面可以读取记录操作恢复数据)
4)namenode在内存中对数据进行增删改查
第二阶段:Secondary NameNode工作
1)Secondary NameNode询问namenode是否需要checkpoint。直接带回namenode是否检查结果。(通常情况下,SecondaryNameNode每隔一小时执行一次。)
2)Secondary NameNode请求执行checkpoint。
3)namenode滚动正在写的edits日志
4)将滚动前的编辑日志和镜像文件拷贝到Secondary NameNode
5)Secondary NameNode加载编辑日志和镜像文件到内存,并合并。
6)生成新的镜像文件fsimage.chkpoint
7)拷贝fsimage.chkpoint到namenode
8)namenode将fsimage.chkpoint重新命名成fsimage