联邦 HDFS 是 namenode 水平扩展方案。联邦 HDFS 允许每个 namenode之间的命名空间相互独立。数据块池不再切分,所以每个DataNode 需要注册到每个 namenode。
HDFS 的底层存储是可以水平拓展的(底层存储指的是 datanode,当集群存储 空间不够时,可简单的添加机器以进行水平拓展),但 namespace 不可以。 当前的 namespace 只能存放在单个 namenode 上,而 namenode 在内存中存储了整个分布式文件系统中的元数据信息,这限制了集群中数据块,文件和目录的数目。
1.namespace是一个可扩展的,相当于namenode是一个分布式的。
2.性能提升了,操作不会由于一个namenode的吞吐量收到限制。
3.隔离性。每个namenode只管理一部分文件 。不同用户可以被namespace隔离。
HDFS Federation并没有完全解决单点故障问题。虽然namenode/namespace存在多个,但是从单个namenode/namespace看,仍然存在单点故障:如果某个namenode挂掉了,其管理的相应的文件便不可以访问。Federation中每个namenode仍然像之前HDFS上实现一样,配有一个secondary namenode,以便主namenode挂掉一下,用于还原元数据信息。
HDFS Federation采用了Client Side Mount Table分摊文件和负载,该方法更多的需要人工介入已达到理想的负载均衡。