EditLog:由namenode管理的事务日志,任何对元数据的修改操作如:在HDFS上创建文件、修改文件的副本系数等操作,namenode都会向EditLog插入一条记录。‘’(它存在于Namenode所在的本地文件系统上。)
FsImage:存储hdfs的命名空间,包括数据块到文件的映射、文件的属性等。(它存在于Namenode所在的本地文件系统上。)
如何持久化:
1、当Namenode启动时,它从硬盘中读取Editlog和FsImage
2、将所有Editlog中的事务作用在内存中的FsImage上,并将这个新版本的FsImage从内存中保存到本地磁盘上,
3、然后删除旧的Editlog,因为这个旧的Editlog的事务都已经作用在FsImage上了。
4、这个过程称为一个检查点(checkpoint)。在当前实现中,检查点只发生在Namenode启动时,在不久的将来将实现支持周期性的检查点。
补充: