Hadoop官方文档学习之 HDFS联邦体系结构

背景

Hadoop官方文档学习之 HDFS联邦体系结构

HDFS有两个主要层次:

  • Namespaces
    - 由目录,文件和块组成。
    - 它支持所有与Namespaces相关的文件系统操作,例如创建,删除,修改和列出文件和目录。
  • 块存储服务有两个部分:

    • 块管理(在Namenode中执行)
      • 通过处理注册和定期心脏跳动提供Datanode群集成员身份。
      • 进程阻止报告并维护块的位置。
      • 支持块相关的操作,如创建,删除,修改和获取块位置。
      • 管理副本放置,阻止复制块的复制,并删除过度复制的块。
    • 存储 - 由Datanodes提供,通过在本地文件系统上存储块并允许读/写访问。
      先前的HDFS体系结构仅允许整个集群使用一个Namespaces。在该配置中,单个Namenode管理Namespaces。HDFS联合通过向HDFS添加对多个Namenodes /Namespaces的支持来解决此限制。

多个Namenodes /Namespaces

为了水平缩放名称服务,联邦使用多个独立的Namenodes /Namespaces。Namenodes是联合的; Namenodes是独立的,不需要彼此协调。Datanodes被所有Namenode用作块的公共存储。每个Datanode都注册到集群中的所有Namenode。Datanodes定期发送心跳并阻止报告。他们还处理来自Namenodes的命令。

用户可以使用ViewF创建个性化的Namespaces视图。ViewFs类似于某些Unix / Linux系统中的客户端挂载表。

HDFS联邦体系结构
Hadoop官方文档学习之 HDFS联邦体系结构

块池

块池是属于单个Namespaces的一组块。Datanodes存储群集中所有块池的块。每个块池都是独立管理的。这允许Namespaces为新块生成块ID,而无需与其他Namespaces进行协调。Namenode失败不会阻止Datanode为集群中的其他Namenode提供服务。

Namespaces及其块池一起被称为Namespaces卷。它是一个独立的管理单元。当名称节点/Namespaces被删除时,Datanodes中相应的块池将被删除。在集群升级过程中,每个Namespace Volume均作为一个单元进行升级。

集群ID

Cluster编号标识用于识别该集群中的所有节点。当Namenode被格式化时,该标识符被提供或自动生成。此ID应用于将其他Namenode格式化为群集。

HDFS联邦性能

  • Namespace可伸缩性 - 联邦会添加Namespace水平缩放。使用大量小文件的大型部署或部署可通过允许将更多Namenode添加到群集中而从Namespace缩放中受益。
  • 性能 - 文件系统吞吐量不受单个Namenode限制。向群集添加更多Namenodes可扩展文件系统的读/写吞吐量。
  • 隔离 - 单个Namenode在多用户环境中不提供隔离。例如,一个实验性应用程序可以使Namenode过载并放慢生产关键型应用程序。通过使用多个Namenode,可以将不同类别的应用程序和用户隔离到不同的Namespace。