NameNode内部运行过程:
1. 主节点(NameNode ,后面简称为NN)启动时会先把最新的镜像文件fsimage和edits加载到内存中。
2. NN从客户端接收到指令信息(增删改查等操作),会先将指令内容暂时存放在内存中。执行完成后产生新的日志,将新日志写入到edits中,写入的内容到达一定阈值后edits会将自身内容存入edits备份文件中,每完成一次备份操作,会将原edits文件编号改为最后一次操作的编号。如有新操作会循环执行本步骤。
SecondaryNode内部运行过程:
1). 辅助节点(SecondaryNode,后边简称为SN)每过一小时或者NN的事务数达到了100万次时会触发询问,SN询问NN是否对edits和镜像文件fsimage进行check合并。
2). NN告知SN可以合并,SN会复制NN的fsimage镜像文件和所有edits备份文件,复制后将fsimage镜像和所有的edits备份文件加载到SN内存中执行check合并。
3). SN将合并后的数据写入fsimage_checkpoint文件
4). NN从SN处复制得到fsimage_checkpoint文件并使用该文件覆盖原本的fsimage文件