问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

详解Hadoop之二:HDFS Federation(联邦)

创作时间:
作者:
@小白创作中心

详解Hadoop之二:HDFS Federation(联邦)

引用
CSDN
1.
https://blog.csdn.net/fengxuezhiye/article/details/80513313

HDFS Federation是Hadoop生态系统中一个重要的架构改进,它通过引入多个NameNode节点来解决单NameNode架构的局限性。本文将详细介绍HDFS Federation的工作原理、关键技术点以及其优缺点,帮助读者深入理解这一架构设计。

Hadoop 1.x的HDFS架构

Hadoop 1.x的HDFS架构主要由两层组成:Namespace(命名空间)和Block Storage(块存储)。

  1. Namespace
  • 由目录、文件和块组成。
  • 支持创建、删除、修改和列举命名空间相关系统的操作。
  1. Block Storage
  • Block Management: 在NameNode中完成,负责块的管理,包括控制注册和阶段性的心跳来保证DataNode正常运行,处理块的信息报告,维护块的位置信息,创建、修改、删除和查询块,管理副本和副本位置。
  • Storage: 在DataNode上提供对块的读写操作。

单NameNode架构的局限性

  1. Namespace命名空间限制
  • NameNode将所有元数据存储在内存中,单个NameNode所能存储的对象(文件+块)有限制。
  1. 性能瓶颈(吞吐量)
  • 整个HDFS文件系统的吞吐量受限于单个NameNode的吞吐量。
  1. 隔离问题
  • 无法隔离应用程序,一个实验程序可能影响整个集群。
  1. 单点故障
  • NameNode是单点故障。
  1. Namespace和Block Management紧密耦合
  • 紧密耦合导致使用另外一种NameNode方案比较困难,也限制了其他想使用快存储的应用。
  1. 纵向扩展NameNode为什么不可行
  • 启动时间长,调试困难,集群易宕机。
  • 例如将NameNode的Heap空间扩大到512GB时,启动时间过长,Full GC时容易导致集群宕机,大JVM Heap的调试也比较困难。

Federation架构

Federation架构的主要特点如下:

  1. 多个独立的NameNode
  • 这些NameNode直接相互独立,各自分工管理自己的区域,且不需要互相协调。一个NameNode挂掉了不会影响其他的NameNode。
  1. 通用的数据存储设备
  • 每个DataNode要向集群中所有的NameNode注册,且周期性地向所有NameNode发送心跳和报告,并执行来自所有NameNode的命令。
  1. Block Pool管理
  • 一个Block Pool由属于同一个Namespace的数据块组成,每个DataNode可能会存储集群中所有Block Pool的数据块。
  • 每个Block Pool内部自治,各自管理各自的Block,不会与其他Block Pool交流。
  1. Namespace Volume
  • Namenode和Block Pool一起被称作Namespace Volume,它是管理的基本单位。
  • 当一个Namespace被删除后,所有DataNode上与其对应的Block Pool也会被删除。
  • 当集群升级时,每个Namespace Volume作为一个基本单元进行升级。

Federation关键技术点

命名空间管理

Federation中存在多个命名空间。为了方便管理多个命名空间,HDFS Federation采用了经典的Client Side Mount Table。

这四个深色的三角代表4个独立的命名空间,上方的灰色三角形代表从客户角度去访问的子命名空间。各个深色的命名空间mount到灰色的表中,客户端可以通过不同的挂载点来访问不同的命名空间,如同Linux系统中访问不同挂载点一样。这就是Federation的基本原理:将各个命名空间挂载到全局Mount Table中,就可以将数据全局共享,同样的命名空间挂载到个人的Mount Table中,就成为应用程序可见的命名空间视图。

Block Pool管理

Block Pool是Federation中用于存储数据块的逻辑单元,每个Block Pool由属于同一个Namespace的数据块组成。每个DataNode可能会存储集群中所有Block Pool的数据块。每个Block Pool内部自治,各自管理各自的Block,不会与其他Block Pool交流。

HDFS Federation的不足

HDFS Federation并没有完全解决单点故障问题。虽然NameNode/namespace存在多个,但对于单个NameNode来说,仍然存在单点故障。如果某个NameNode挂掉了,其管理的相应文件便不可以访问。Federation中每个NameNode仍然像之前一样,配有一个Secondary NameNode,以便主NameNode挂掉后,用于还原元数据信息。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号