【大数据Hadoop】HDFS3.3.1-Namenode系列源码阅读

前言

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】HDFS-Namenode-租约管理

缓存管理

【大数据Hadoop】HDFS3.3.1-Namenode-缓存管理

本文内容结合自 《Hadoop 2.X HDFS 源码剖析》以及自己的理解

希望对正在查看文章的您有所帮助,记得关注、评论、收藏,谢谢您

猜你喜欢

转载自blog.csdn.net/u013412066/article/details/130074084