前言:Hadoop2.0中的联邦机制
出现原因
元数据存储在NameNode的内存中,因此集群规模受限于单个NameNode的内存大小。HDFS联邦(Federation)提供了一种解决单组名称节点(NameNode)局限性问题的水平扩展方案
概念
Federation是指HDFS集群可使用多个独立的NameSpace(命名空间,由NameNode节点管理,有ANN和SNN)来满足HDFS命名空间的水平扩展,这些命名空间彼此隔离,但共享所有DataNode的存储资源,协同存储DataNode的元数据(用BlockPoolId区分)
HDFS联邦使用多组名称节点和名称空间(NameSpaces),所有的名称节点相互独立,构成联邦,各自分工独立管理自己的区域,无需互相协调。
HDFS联邦架构与单组名称节点架构设计的不同:
(1)HDFS联邦架构在集群中由多组名称节点(NameNode)同时对外提供服务。
(2)名称空间(NameSpace)也被水平拆分为多个独立部分,分别由彼此之间相互隔离的名称节点来管理
数据节点(Datanode)共享集群中所有的数据存储资源。
联邦机制的优点
(1)HDFS集群扩展性。每个NameNode分管一部分Namespace,相当于Namenode是一个分布式的。
(2)性能更高效。多个NameNode同时对外提供服务,提供更高的读写吞吐率。
(3)良好的隔离性。用户可根据需要将不同业务数据交由不同NameNode管理,这样不同业务之间影响很小。
(4)Federation良好的向后兼容性,已有的单Namenode的部署配置不需要任何改变就可以继续工作。
联邦架构的局限性
(1)交叉访问问题。由于多个命令空间的存在,它们相互独立,如果一个操作要访问多个文件路径,需要交叉访问多个名称空间,产生交叉访问题。
(2)集群管理性问题。启用联邦机制后,过去的一些HDFS管理命令,如“hdfsdfsadmin、hdfsfsck”等无法使用,给集群管理员的日常集群管理带来一定麻烦。
admin、hdfsfsck”等无法使用,给集群管理员的日常集群管理带来一定麻烦。