hadoop1.x的hdfs架构

hadoop namenode联邦 hadoop 联邦模式_联邦


主要由namespace(命名空间)和Block Storage(块的存储)两层组成

局限性:

  1. namespace和block manager高度耦合,其他服务难以单独使用数据块储存功能。
  2. 拓展性有限:虽然Datanode可以水平扩展,但是namenode的内存存储了整个分布式文件系统的元数据信息,限制了集群的数据块,文件的目录的数量。
  3. 性能受限:HDFS的所有读写操作都要和namenode通信,单个namenode限制了性能。
  4. 隔离性差:namenode作为文件系统中心,无法进行数据的有效隔离。
  5. 单点故障:只有一个namenode用于处理信息。

hadoop 2.x的架构:联邦机制

hadoop namenode联邦 hadoop 联邦模式_大数据_02


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

引入块池(block pool)和命名空间卷(namespace Volume),一个块池由属于同一个命名空间的所有数据块组成。一个namenode和它的block pool一起称为命名空间卷,是一个基本升级单元。

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

  1. 多个NN共用一个集群DN的存储资源,每个NN都可以单独对外提供服务。
  2. 每个NN都会定义一个存储池,有单独的id,每个DN都为所有存储池提供存储。
  3. DN会按照存储池id向其对应的NN汇报块信息,同时,DN会向所有NN汇报本地存储可用资源情况。
  4. 如果需要在客户端方便的访问若干个NN上的资源,可以使用客户端挂载表,把不同的目录映射到不同的NN,但NN上必须存在相应的目录。

优点:

  1. 支持namenode水平拓展,提供了命名空间卷级别的隔离性。
  2. 多个namenode提高了文件系统吞吐量,性能提高。
  3. 提高了高可用性,既有双机热备,又有多个namenode同时工作。