1.用到的名称
fsimage文件:记录HDFS文件系统的所有目录和文件inode序列化信息。也就是相当于记录元数据
edits文件:记录所有HDFS文件系统中所有更新操作,当更新操作发生时首先记录到此文件
seen_txid文件:保存最新一个edits文件的数字
NameNode工作机制
1.当NameNode启动时:会根据seen_txid文件中保存的edits数字读取最新的edits文件,然后读取fsimage文件,将两者数据合并生成元数据信息加载到内存中
2.client发送元数据的增删改操作(如修改某个路劲,新增某个文件等)
3.NameNode将操作追加记录到edits文件中,然后更新内存中的元数据
SecondaryNameNode工作机制
1.2nn根据配置来请求是否执行Checkpoint操作(如时间到了,edits文件满了)
2.2nn执行Checkpoint操作
3.将NameNode节点上的正在写入的edits文件重命名一个名称,然后生成一个新的edits文件,新来的操作请求将写入这个新的edits文件中
4.将重命名后的edits文件和fsimage文件拷贝到2nn节点
5.2nn将两个文件合并加载到内存中,然后生成一个新的fsimage文件
6.2nn将这个新的fsimage文件拷贝到NameNode上然后覆盖之前的fsimage文件
注:2nn不能代替NameNode进行工作。他的工作就是负责备份一些namenode的管理的相关信息,还可以辅助恢复一些nameNode的数据,但是在2nn触发Checkpoint操作之前到上一次触发Checkpoint操作之后的数据将会丢失。