Hbase

HDFS Federation

2017-08-07  本文已影响25人  韩思明

HDFS Federation

HDFS Federation是Hadoop最新发布版本Hadoop-0.23.0中为解决HDFS单点故障而提出的namenode水平扩展方案。该方案允许HDFS创建多个namespace以提高集群的扩展性和隔离性。本篇文章主要介绍了HDFS Federation的设计动机和基本原理。

背景

图一

以前的HDFS架构只允许一个集群拥有一个命名空间,一个Namenode管理着整个命名空间。HDFS Federation通过向HDFS增加多Namenode和namespace来解决这种限制。

HDFS Federation

图二

为了水平扩展name service,Federation使用了独立的多Namenode/Namespaces的架构。这些namenode之间是联合的,也就是说,他们之间相互独立且不需要互相协调,各自分工,管理自己的区域。(The Namenodes are federated; the Namenodes are independent and do not require coordination with each other.)Datanode被用作是存储设备,在集群中,每一个Datanode都在Namenodes上注册。Datanodes周期性的发送心跳包和关于块的报告。Datanodes也要处理来自Namenodes的命令。

几个关键的概念

Namespace的管理

图三

Federation中存在多个命名空间,如何划分和管理这些命名空间非常关键。在Federation中并采用“文件名hash”的方法,因为该方法的locality非常差,比如:查看某个目录下面的文件,如果采用文件名hash的方法存放文件,则这些文件可能被放到不同namespace中,HDFS需要访问所有namespace,代价过大。为了方便管理多个命名空间,HDFS Federation采用了经典的Client Side Mount Table。

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

HDFS Federation的优势

参考资料

上一篇下一篇

猜你喜欢

热点阅读