简述联邦 HDFS

联邦 HDFS 是 namenode 的水平扩展方案。该方案允许 HDFS 创建多个 namespace 以提高集群的扩展性和隔离性。联邦 HDFS 允许每个 namenode 管理文件系统命名空间的一部分。每个 namenode 维护一个命名空间,不同 namenode 之间的命名空间相互独立。数据块池不再切分,因此每个 datanode 需要注册到每个 namenode

HDFS 的底层存储是可以水平扩展的(底层存储指的是 datanode,当集群存储空间不够时,可简单的添加机器来进行水平扩展),但 namenode 不能进行水平扩展。当前的 namespace 只能存放在单个 namenode 上,而 namenode 在内存中存储了整个分布式系统的元数据信息,这限制了集群中数据块、文件和目录的数目

联邦 HDFS 有以下特性

  1. 多个 NN 共用一个集群里 DN 上的存储资源,每个 NN 都可以单独对外提供服务,但仍存在单点故障,只是说影响的范围变小了,每个 NN 都需要 secondary namenode

  2. 每个 NN 都会定义一个存储池,有单独的 id,每个 DN 都为所有的存储池提供存储

  3. DN 会按照存储池 id 向其对应的 NN 汇报块信息,同时 DN 会向所有 NN 汇报本地存储可用资源情况

  4. 如果需要在客户端方便的访问若干个 NN 上的资源,可以使用客户端挂载表,把不同的目录映射到不同的 NN,但 NN 上必须存在相应的目录

    img

一个 block pool 由属于同一个 namespace 的数据块组成,每个 datanode 可能会存储集群中所有 block pool 的数据块

每个 block pool 内部自治,也就是各自管理各自的 block,不会与其他 block pool 交流。一个 namenode 挂掉了,不会影响其他 namenode

每个 namenode 上的 namespace 和他对应的 block pool 一起被称为 namespace volume。他是管理的基本单元,当一个 namenode 被删除后,其所有 datanode 上对应的 block pool 也会对应删除。当集群升级时,每个 namespace volume 作为一个基本单元进行升级

https://blog.csdn.net/fengxuezhiye/article/details/80513313

-----------本文结束感谢您的阅读-----------
0%