fsimage 和 editlog 的工作原理及合并过程

本文深入解析HDFS中fsimage和editlog的工作原理。fsimage保存最新元数据检查点,启动时加载整个文件系统信息;editlog记录所有更新操作。secondarynamenode周期性合并fsimage和editlog,避免editlog无限增长。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

fsimage 和 editlog 的工作原理

  • fsimage和editlog都是为NameNode存储文件信息的。
  • Fsimage:fsimage保存了最新的元数据检查点,在HDFS启动时加载fsimage的信息,包含了整个HDFS文件系统的所有目录和文件的信息;
  • Editlog:editlog主要是在NameNode已经启动情况下对HDFS进行的各种更新操作进行记录,HDFS客户端执行所有的写操作都会被记录到editlog中。
  • 对于更新操作都会记录在editlog中,为了避免editlog不断增大,secondary namenode会周期性合并fsimage和edits成新的fsimage,新的操作记录会写入新的editlog中。

合并过程:

  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.ckpt文件。
  5. 执行结束后,会向namenode发送http请求,告知namenode合并结束,namenode通过http post的方式获取新fsimage.ckpt文件。
  6. Namenode更新fsimage.ckpt文件中记录检查点执行的时间,并改名为fsimage文件。
  7. Edit.new文件更名为edit文件。
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值