HDFS之checkpoint机制---大数据分析学习笔记5

Checkpoint(检查点):

HDFS这样的分布式文件系统,对文件数据的修改不是直接写回到磁盘的,很多操作是先缓存到内存的Buffer中,当遇到一个检查点Checkpoint时,系统会强制将内存中的数据写回磁盘,当然此时才会记录日志,从而产生持久的修改状态。

1.Namenode上面有些什么数据:
笔记2中提到namenode管理结点主要有下面两类文件
edits:HDFS操作的日志记录,没此对HDFS进行修改操作后,都会往edits中记录一条日志;
fsimage:HDFS中命名空间、数据块分布、文件属性等信息都存放在fsimage中;
注:只有在每次启动Namenode时,才会把edits中的操作增加到fsimage中,并且把edits清空。
所以fsimage总是记录启动Namenode时的状态,而edits在每次启动时也是空的,它只记录本次启动后的操作日志。

2.checkpoint触发的条件
在配置文件中有两个参数:
fs.checkpoint.period:设置两次相邻checkpoint之间的时间间隔,默认是1小时;
fs.checkpoint.size:设置一个edits文件大小的阈值,达到这个阈值,就强制执行一此checkpoint(即使此时没有达到period的时限),默认为64MB。

3.Checkpoint执行过程
Chekpoint主要干的事情是,将Namenode中的edits和fsimage文件拷贝到Second Namenode上,然后将edits中的操作与fsimage文件merge以后形成一个新的fsimage,这样不仅完成了对现有Namenode数据的备份,而且还产生了持久化操作的fsimage。最后一步,Second Namenode需要把merge后的fsimage文件upload到Namenode上面,完成Namenode中fsimage的更新。
当Namenode发生故障丢失元数据后,可以利用Second Namenode进行导入恢复:
(1)在Namenode的节点上面创建dfs.name.dir指定的目录;
(2)指定配置文件中的fs.checkpoint.dir(应该是hdfs-site.xml文件);
(3)启动Namenode时带上选项 -importCheckpoint。
(4)Namenode首先会将fs.checkpoint.dir中的文件拷贝到dfs.name.dir中,如果此时dfs.name.dir中已经包含了合法的fsimage文件(也就是Namenode没有发生元数据丢失却执行了导入操作),那么Namenode就会执行失败。否则,Namenode会检测导入的fsimage文件是否与文件系统中的数据一致,若一致则成功完成导入恢复。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值