再看看NameNode中的元数据:
其中(需要注意的):
- edits文件的后缀名,表示在1个小时的间隔时间内,执行的写操作编号(序号);
- 每隔1个小时,SecondaryNameNode会将NameNode当前的edits与fsimage文件进行合并,生成新的fsimage,然后生成新的空的edits文件(没太懂,不是很重要,后面慢慢理解)
- edits_inprogress文件,是当前正在执行的操作(编号总是最大)
- fsimage文件,是SecondaryNameNode将edits文件与fsimage文件合并后生成的,默认保留2个版本
edits文件更新的条件:
fsimage文件生成的条件(没太懂,不是很重要,后面慢慢理解):
小知识:(一般不用)
可以通过指令强制滚动日志,即让NameNode立即生成一个edits文件(不论是否已经到达1小时),此时edits_inprogress文件序号会增加。