管理文件系统元数据

前面一篇博文提到元数据的概念

接下来看一些具体的东西。

从形式上讲,元数据可分为内存元数据和元数据文件两种。其中NameNode在内存中维护整个文件系统的元数据镜像,用于HDFS的管理;元数据文件则用于持久化存储。

NameNode将文件系统的元数据以不同的文件保存在本地磁盘中,其中最重要的两个文件是fsimage 和edits。不懂fsimage和edits可以看这边。和数据库一样,fsimage包含文件系统元数据的完整快照,而edits仅包含元数据的增量修改。通俗地理解是这样的:由于所有的元数据位于内存,其大小随文件系统的规模增大而增大,如果每次都将整个内存元数据导出磁盘,将会带来很大的系统开销,所以HDFS在实现时,没有采用定期导出元数据的方法,而是采用元数据镜像文件(FSImage)+日志文件(edits)的备份机制,其中镜像文件是某一时刻内存元数据的真实组织情况,而日志文件则记录了该时刻以后所有的元数据操作 。

这样的机制存在一个问题:NameNode在为集群提供服务时可能无法提供足够的资源----CPU或RAM来支持此运算。为了解决这一问题,引入了次NameNode

接下来是NameNode和次NameNode的交互示意图:





默认情况下,该过程每小时发生一次,或者当NameNode的edits文件大小达到默认的64MB时也会被触发。尽管后面我们会研究如何改变这些配置,但通常来说无需改变。在新版本的Hadoop中,通过使用预定义的事务次数而不是文件大小来触发该过程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值