HDFS Federation

    HDFS Federation是hadoop2.2.0(Hadoop2正式版本)中的新一代HDFS架构。下面的所有对HDFS Federeation的介绍都是基于官网的翻译。

背景

HDFS Layers

HDFS主要有两层:

    1 Namespace

        (1)由目录、文件及块组成

        (2)它支持所有依赖于命名空间的文件系统操作如 创建、删除、修改和列出文件及目录。

    2 Block Storage Service

        (1)块管理(上版本的Namenode已经实现)

                1)通过处理datanode注册和定时心跳来提供datanode集群成员身份

                2) 处理块报告和维护块位置

                3) 支持块相关的操作 如 创建、删除、修改和获得块位置。

                4) 管理正在复制的块的备份放置和块的复制过程,删除多余的复制块。

            (2)存储-通过datanodes在本地文件系统存储块及读写访问实现。

        上一版本的HDFS集群架构仅允许整个集群有一个单一的namespace。一个单一的namenode管理namespace。HDFS Federation 通过添加HDFS文件系统对多个Namenodes/namespaces的支持来解决上一版本的架构限制。

Multiple Namenodes/Namespaces

    为了水平扩展name server,federation使用多个独立的Namenodes/namespaces。Namenodes是联邦的,就是说,namenode们之间是独立的并且不需要互相协调。对所有namenode,datanode都被用来做普通块存储。每一个datanode在这个集群所有的namenode中注册。datanode发动周期心跳、块报告,处理namenode们发来的命令。

HDFS Federation Architecture

    1 Block Pool

    Block Pool是指属于一个namespace的所有块的集合。Datanode们为集群中的所有block pool存储块。block pool的管理是独立的。这样,namespace可以在为新块产生块id时不考虑与其他namespace的互相协调。一个namenode的失效不会影响datanode服务集群中的其他namanode。

    namespace和它的的block pool一起被称为Namespace volume。它是一个完备的管理单元。当一个Namenode/namespace被删除时,在datanode中关联的block pool也会被删除。在集群升级期间,每个namespace volume作为一个单元来升级。

    2 ClusterID

    加入新的标识符ClusterID来标识集群的所有节点。格式化namespace时,要提供或者自动产生这个标识符。这个ID应该用于格式其他 Namenodes 到该群集。

        主要优点

            (1) namespace可扩展 - HDFS 集群 存储可以水平扩展而namespace不可以。大型部署或使用多个小文件部署受益于水平扩展namespace,而水平扩展namespace通过往集群中添加多个namenode实现。

            (2)性能。在上个版本中文件系统的吞吐量由于单点而受限。往集群中添加更多的Namenode扩展了文件系统的读写吞吐量。

            (3)隔离。单一namenode不提供在多用户环境下的隔离。一个试验应用可以使namenode超载并使关键应用的运行变慢。在多namenode情况下,不同种类的应用和用户可以被隔离在不同的namespace。


你可能感兴趣的:(hadoop,hdfs,2.2.0,Federation)