解决内存受限问题:
- HDFS Federation
- 水平扩展,支持多个NameNode
- 所有的NameNode 共享所有的DataNode存储资源
- 每一个NameNode 分管一部分目录(block pool)
解决单点故障问题:
- HDFS HA: 通过NameNode 解决
- 如果 NameNode 发生故障,就切换到备用NameNode
联邦
联邦 HDFS 是 namenode 水平扩展方案。联邦 HDFS 允许每个 namenode之间的命名空间相互独立。数据块池不再切分,所以每个DataNode 需要注册到每个 namenode。
HDFS 的底层存储是可以水平拓展的(底层存储指的是 datanode,当集群存储 空间不够时,可简单的添加机器以进行水平拓展),但 namespace 不可以。 当前的 namespace 只能存放在单个 namenode 上,而 namenode 在内存中存储了整个分布式文件系统中的元数据信息,这限制了集群中数据块,文件和目录的数目。
- 多个 NN 共用一个集群 DN 的存储资源,每个 NN 都可以单独对外提供服 务。
- 每个 NN 都会定义一个存储池,有单独的 id,每个 DN 都为所有存储池提供存储。
- DN 会按照存储池 id 向其对应的 NN 汇报块信息,同时,DN 会向所有 NN汇报本地存储可用资源情况。
- 如果需要在客户端方便的访问若干个 NN 上的资源,可以使用客户端挂载表,把不同的目录映射到不同的 NN,但 NN 上必须存在相应的目录。
Federation的主要优点
1.namespace是一个可扩展的,相当于namenode是一个分布式的。
2.性能提升了,操作不会由于一个namenode的吞吐量收到限制。
3.隔离性。每个namenode只管理一部分文件 。不同用户可以被namespace隔离。
Federation的不足
单点故障问题
HDFS Federation并没有完全解决单点故障问题。虽然namenode/namespace存在多个,但是从单个namenode/namespace看,仍然存在单点故障:如果某个namenode挂掉了,其管理的相应的文件便不可以访问。Federation中每个namenode仍然像之前HDFS上实现一样,配有一个secondary namenode,以便主namenode挂掉一下,用于还原元数据信息。
负载均衡问题
HDFS Federation采用了Client Side Mount Table分摊文件和负载,该方法更多的需要人工介入已达到理想的负载均衡。
HDFS联邦是一种解决内存受限和单点故障问题的策略,通过水平扩展支持多个NameNode,每个NameNode分管一部分目录,实现命名空间的独立。尽管引入了负载均衡和性能提升,但联邦并未完全消除单点故障,每个NameNode仍需要一个secondary NameNode以备恢复,并且负载均衡依赖于手动调整。

3216

被折叠的 条评论
为什么被折叠?



