namenode功能与作用机制

namenode## 作用与机制

作为整个HDFS集群和文件系统的管理者,namenode的功能主要可总结为以下四点

1、管理HDFS的命名空间,并以fsimage进行持久化保存。

HDFS命名空间即文件目录树及其目录与文件的元数据,为了处理的高效性,namenode会在内存中维护这部分元数据,同时为了安全性,也需要将这些数据永久化到磁盘中,具体则是通过fsimage和edits两个文件进行实现

fsimage 是命名空间镜像文件,是文件系统元数据的完整的永久检查点,可理解为文件系统的存档或者快照,由于文件系统往往较为庞大,实时对其进行记录将非常影响性能。这里采用的策略是只每隔一段时间记录一次完整的文件系统镜像(即建立检查点),而中间的变化则是通过将用户的所有操作记录到编辑日志edits文件中进行保存,这样只需要在最近一次的fsimage上推演edits文件中记录的操作,便可得到最新的文件系统。新一个检查点的建立,便是通过合并上一个检查点和edit文件获得的(在上一个检查点上推演其后的edit文件中的操作),这样的操作会消耗大量的cup和内存资源,因此将合并检查点和edit文件的工作将给secondarynamebode进行处理

fsimage和edits文件的存储路径分别由配置文件中的dfs.name.dir和dfs.name.edits.dir所决定,其默认的路径均是/tmp/hadoop/dfs/name
进入该路径后,可见以下目录

在这里插入图片描述

edits文件中的数值后缀是其中记录的事务ID,edits会从1开始记录所有事务

fsimage的数字后缀为该检查点同步的最后一个事务ID。可以看出,不同于edits记录所有的事务,系统只会保留最新的两个检查点

2、处理客户端的访问,并将修改动作记录到edits文件中

namenode负责处理客户端的请求并返回块文件对应的datanode地址,具体的读写操作由datanote进行。namenode将修改动作全部记录到edits文件中,协助fsimage 维护命名空间

3、在内存中维护数据块的映射信息。

即块文件与datanode的对应关系,namenode只在内存中维护此关系,不会永久化到磁盘上,因此在集群刚启动是,namenode中并没有块文件与datanode的对应关系,需要datanode上报自身的块文件信息后,才可以正常工作

4、实施副本冗余策略

当发现块的实际副本数小于配置数时,会启动复制块的线程,直到个数达到配置数

参考:《hadoop权威指南》

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值