浅谈hadoop(五)——hadoop简介 文件系统元数据的持久化

21 篇文章 1 订阅

浅谈hadoop(五)——hadoop简介

本文翻译素材来自hadoop官网:http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html#Data_Replication

The Persistence of File System Metadata

        hdfs的命名空间存储在namenode中。namenode用一个叫做“EditLog”的事务日志记录发生在文件系统原数据上的所有变化。比如:在文件系统中创建一个文件,namenode就会在EditLog中插入一条记录标记一下。同样的,修改一个文件的副本因子同样会在触发EditLog中插入一条记录。namenode把EditLog存储在本地的文件系统中。整个系统的命名空间,包括块和文件的映射表,文件系统属性都被存储到一个叫做FsImage的文件中。这个FsImage文件也存在namenode的本地文件系统中。
        namenode在内存中保存了整个文件系统的命名空间和文件块映射表。当namenode启动时,或者一个可配置入口的校验点被触发的时候,namenode会从本地文件系统中读取FsImage和EditLog文件,执行所有的EditLog文件中的事务,执行后的事务会更新现有的FsImage。再把最新版本的FsImage标记为当前的这个FsImage,同时保存到磁盘上。现在就会删除EditLog文件了,因为EditLog中的事务已经在FsImage中持久化了。整个过程叫做校验点。校验点的目的是通过把hdfs文件系统元数据的快照保存到FsImage中从而保持了hdfs文件系统的一致性。尽管读取FsImage是有效的,但是在FsImage文件后附加是无效的。相对于修改FsImage,我们更建议修改EditLog文件。在执行校验点的过程中就是把EditLog转换到FsImage中的过程。校验点有两种触发方式,一种是根据时间循环(dfs.namenode.checkpoint.period)单位是秒触发,另一种是根据文件系统的事务增加量(dfs.namenode.checkpoint.txns)触发。如果两个都进行了设置,那么哪个先达到了,就会触发校验点。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值