edits和fsimage的合并

edits文件记录了客户端对HDFS所做的各种更新操作,客户端所有的写操作都被记录在了此文件中。
而fsimage文件记录了元数据的文件,这个文件不是实时的,通俗来说,更像是对HDFS的一个快照,它记录了某个时刻下的HDFS的状态信息。

触发这两个文件合并的条件

  1. HDFS的重新启动
  2. edits文件达到指定的大小(默认64M,可更改)
  3. 设置了指定时间促使两文件合并(默认3600s,可更改)

合并过程(在SecondaryNameNode上)

  1. NameNode中产生一个新的edits文件,名为edits.new后续的更新操作写在此文件中
  2. SecondaryNameNode通过http协议从Name上获取edits文件和fsimage文件
  3. 在SecondaryNameNode上将fsimage文件加载到内存中,然后将edits文件的操作更新到内存中,然后写成一个新的文件fsimage.ckpt
  4. SecondaryNameNode通过http协议将fsimage.ckpt文件发送到NameNode上
  5. NameNode将fsimage.ckpt文件更名为fsimage,将edits.new更名为edits

SecondaryNameNode不是NameNode的热备,但也能起到一定的备份作用,这就说明在一定情况下可能会产生数据丢失情况,所以在Hadoop2.0完全分布式中,抛弃了SecondaryNameNode,采用了双NameNode机制来进行热备

edits文件和fsimage文件的合并发生在SecondaryNameNode上是因为这两个文件比较合并耗时,如果在NameNode上合并可能会导致系统卡顿,所以在SecondaryNameNode上进行

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值