• HDFS 联邦


    解决内存受限问题:

    • 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 在内存中存储了整个分布式文件系统中的元数据信息,这限制了集群中数据块,文件和目录的数目。

    1. 多个 NN 共用一个集群 DN 的存储资源,每个 NN 都可以单独对外提供服 务。
    2. 每个 NN 都会定义一个存储池,有单独的 id,每个 DN 都为所有存储池提供存储。
    3. DN 会按照存储池 id 向其对应的 NN 汇报块信息,同时,DN 会向所有 NN汇报本地存储可用资源情况。
    4. 如果需要在客户端方便的访问若干个 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分摊文件和负载,该方法更多的需要人工介入已达到理想的负载均衡。

  • 相关阅读:
    abp(net core)+easyui+efcore实现仓储管理系统——ABP升级7.3上(五十八)
    noip模拟赛多校第八场 T4 不要翻墙 (矩阵乘法优化DP, 动态DP)
    vscode 连接ubuntu git下载缓慢
    CSRF跨站请求伪造:django中如何攻击与防御
    计算机毕业设计(附源码)python疫情隔离便民系统
    接口测试如何准备测试数据
    C++ explicit关键字使用方法
    2022-09-09 Unity InputSystem5——PlayerInput
    FastReport VCL 2022.3
    白话区块链是什么
  • 原文地址:https://blog.csdn.net/Laoddaaa/article/details/126162406