Fsimage 与 EditLog定义及合并过程

fsimage文件:即命名空间映像文件,是内存中的元数据在硬盘上的checkpoint,包含文件系统中的所有目录和文件inode的序列化信息。

edits:文件系统的写操作首先把它记录在edit中。

合并过程

1.secondary namenode通过周期性(五分钟),通过getEditLog获取editlog大小,当其达到合并的大小时通过RollEditLog方法进行合并。

2.namenode停止使用edits文件,并生成一个新的临时的edits.new文件。

3.Secondarynamenode通过namenode内建的Http服务器,以get的方式获取edits与fsimage文件。Get方法中携带着fsimage与edits的路径。

4.Secondaryname将fsimage载入内存并逐一执行edits中的操作,生成新的fsimage文件。

5.执行结束后,会向namenode发送http请求,告知namenode合并结束,namenode通过http post的方式获取新fsimage文件。

6.Namenode更新fsimage文件中记录检查点执行的时间,并改名为fsimage文件。

7.Edit.new文件更名为edit文件。

注:由此可知namenode 与 secondarynamenode 有着相似的内存需求,因为secondarynamenode也会将fsimage载入内存,因此secondarynamenode需要运行在一台专门机器上。

输入图片说明

猜你喜欢

转载自my.oschina.net/134596/blog/1641305
今日推荐