前言
HDFS集群是以Master/Slave模式运行的,主要有两类节点:Namenode和Datanode。其中Namenode是HDFS的主节点。
对于 Namenode 的功能,主要有如下几点:
- 文件系统目录树管理
HDFS 的目录和文件在内存中是以一颗树的形式存储的。这个目录树结构是由 Namenode 维护的,Namenode 会修改这个树形结构以对外提供增删改查文件的操作功能。文件系统目录树上的节点还保存了HDFS文件与数据块的对应关系,我们知道HDFS中的每个文件都是被拆分成若干数据块冗余存放的,文件与数据块的对应关系也是由 Namenode 维护的。 - 数据块以及 Datanode 节点管理
HDFS中的数据块是冗余备份在集群中的 Datanode 节点上,所以Namenode 还需要维护数据块与 Datanode 节点之间的对应关系。这里的对应关系包括两个部分:- 数据块存放在哪些Datanode节点上
- 一个Datanode节点上保存了哪些数据块。
- 租约管理
租约是Namenode给予租约持有者(LeaseHolder,一般是 HDFS 客户端)在规定时间内拥有文件权限(写文件)的合同,Namenode 会执行租约的发放、回收、检查以及恢复等操作。 - 缓存管理
集中式缓存管理功能允许用户将一些文件和目录保存到 HDFS 缓存中。HDFS 的集中式缓存是由分布在 Datanode 上的堆外内存组成的,并且由Namenode 统一管理。 - FSNamesystem
Namenode 涉及很多 HDFS 的处理逻辑,例如读文件、写文件、追加写文件等。Namenode 的 FSNamesystem 类是管理这些逻辑的门面类,也是Namenode 中最重要的一个类。 - Namenode的启动和停止
HA集群中会存在两种状态的 Namenode:Active/Standby作为热备节点。Namenode 在启动时会先进入安全模式,在安全模式中的 Namenode 不会接受客户端对命名空间的修改。Namenode 成功启动后会离开安全模式进入到 Standby 状态
文件系统目录树
数据块管理
Datanode管理
租约管理
缓存管理
【大数据Hadoop】HDFS3.3.1-Namenode-缓存管理
本文内容结合自 《Hadoop 2.X HDFS 源码剖析》以及自己的理解
希望对正在查看文章的您有所帮助,记得关注、评论、收藏,谢谢您