fsimage 和 editlog 的工作原理
- fsimage和editlog都是为NameNode存储文件信息的。
- Fsimage:fsimage保存了最新的元数据检查点,在HDFS启动时加载fsimage的信息,包含了整个HDFS文件系统的所有目录和文件的信息;
- Editlog:editlog主要是在NameNode已经启动情况下对HDFS进行的各种更新操作进行记录,HDFS客户端执行所有的写操作都会被记录到editlog中。
- 对于更新操作都会记录在editlog中,为了避免editlog不断增大,secondary namenode会周期性合并fsimage和edits成新的fsimage,新的操作记录会写入新的editlog中。
合并过程:
- secondary namenode周期性,通过getEditLog获取editlog大小,当其达到合并的大小时通过RollEditLog方法进行合并。
- namenode停止使用edits文件,并生成一个新的临时的edits.new文件。
- Secondarynamenode通过namenode内建的Http服务器,以get的方式获取edits与fsimage文件,Get方法中携带着fsimage与edits的路径。
- Secondaryname将fsimage载入内存并逐一执行edits中的操作,生成新的fsimage.ckpt文件。
- 执行结束后,会向namenode发送http请求,告知namenode合并结束,namenode通过http post的方式获取新fsimage.ckpt文件。
- Namenode更新fsimage.ckpt文件中记录检查点执行的时间,并改名为fsimage文件。
- Edit.new文件更名为edit文件。
相关文章:
-
2021-07-18
-
2021-08-13
-
2022-01-07
-
2022-12-23
-
2022-12-23
-
2021-05-24
-
2021-10-17
-
2021-11-27
猜你喜欢
-
2021-07-25
-
2021-05-15
-
2022-12-23
-
2021-10-10
-
2021-04-08
-
2021-04-13
-
2021-12-17
相关资源
-
下载
2022-12-05
-
下载
2021-06-06
-
下载
2023-01-01