NameNode元数据管理
- NN的元数据是在内存中进行管理的,通过fsimage和edits log来进行磁盘化
- NN启动时加载一次fsimage到内存中
- 对HDFS的操作会记录在Edits Log中,并且每个操作都有一个事务号,edits log文件就是以起始和末尾的事务号命名的。比如下图中的文件,记录的就是942391-942478的事务。
- edits log和fsimage之间通过checkpoint来实现同步,把edits log中的最新数据同步到fsimage中,可以观察fsimage的事务编号。(fsimage有两个,是为了备份用的,实际使用的是事务编号更大的那个)
- 相关命令:
hdfs dfsadmin -rollEdits:生成最新的edits log
hdfs dfsadmin -saveNamespace:手动发起checkpoint,生成最新的fsimage(会先生成最新的edits log,然后合并edits log和旧的fsimage)