19
2021
01

fsimage 和 edits 是干什么的?为什么要使用?

edits:记录 client 执行创建,移动,修改文件的信息,同时体现了 HDFS 的最新的状态(二进制文件)。


它分布在磁盘上的多个文件,名称由前缀 edits 及后缀组成.后缀值是该文件包含的事务 ID,同一时刻只有一个文件处于可读写状态.为避免数据丢失,事务完成后 client 端在执行成功前,文件会进行更新和同步,当 NN 向多个目录写数据时,只有在所有操作更新并同步到每个副本之后执行才成功。


fsimage:记录的是数据块的位置信息、数据块的冗余信息(二进制文件)


由于 edits 文件记录了最新状态信息,并且随着操作越多,edits 文件就会越大,把 edits 文件中最新的信息写到 fsimage 文件中就解决了 edits 文件数量多不方便管理的情况。


没有体现 HDFS 的最新状态。


每个 fsimage 文件都是文件系统元数据的一个完整的永久性的检查点。


为什么使用?


NN 使用了 FsImage+EditLog 整合的方案;


滚动将增量的 EditLog 更新到 FsImage,以保证更近时点的 FsImage 和更小的 EditLog 体积

« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。