HDFS Federation(联邦) 架构YARN的Capacity Scheduler调度策略 ResourceManager的共享存储具体实现方式

HDFS Federation(联邦)架构

什么是HDFS Federation?

随着数据量的增长,单一的NameNode成为了HDFS的瓶颈,因为它需要管理整个文件系统的命名空间和所有文件块的位置信息。为了克服这个限制,Hadoop引入了Federation机制,允许一个集群中有多个NameNode/NameSpace,每个NameNode管理一部分文件系统,从而分散负载。

  • 优点

    • 提高扩展性:通过增加NameNode的数量来支持更多的文件和更大的文件系统。
    • 提升性能:减少单个NameNode的压力,提高读写速度。
    • 增强隔离性:不同的用户组或应用程序可以被分配到不同的NameNode上,避免相互影响。
  • 如何工作? 在Federation架构中,每个NameNode独立地管理自己的命名空间,并共享同一组DataNodes。这意味着所有的DataNode都为所有NameNode提供存储服务Block Pool是属于特定命名空间的一组block集合,每个NameNode都有自己的Block Pool。

举个例子:想象图书馆有多个管理员,每个管理员负责不同区域的书籍管理(命名空间),但所有的书架(DataNodes)都是共用的。这样不仅提高了管理效率,也增加了图书馆的服务能力。


YARN的Capacity Scheduler调度策略

Capacity Scheduler简介

Capacity Scheduler是YARN提供的资源调度器之一,旨在支持多租户环境下的资源共享。它允许组织将集群资源划分成多个队列,并为每个队列设定最低保证资源量(capacity)。此外,它还支持弹性资源共享,即当某个队列未充分利用其分配的资源时,其他队列可以借用这些空闲资源。

  • 主要特性

    • 层级队列结构:支持定义父队列和子队列,便于管理和控制资源分配。
    • 资源保证:确保每个队列至少可以获得其配置的最小资源量。
    • 弹性资源共享:允许超额使用未使用的资源。
    • 优先级与公平性:在满足资源保证的同时,尽可能公平地分配剩余资源给各个应用。
  • 应用场景: 适用于企业内部需要对不同部门或项目进行资源隔离与合理分配的情况。例如,在一个大型公司里,研发团队可能需要比测试团队更多的计算资源来进行模型训练,而Capacity Scheduler可以根据预设规则自动调整资源分配比例。

举例说明:就像一家餐厅有不同的餐桌区,有的区域专供VIP客人使用,但如果有空位,普通顾客也可以临时占用;同时,餐厅会确保每个区域的基本座位数不受影响。


ResourceManager的共享存储具体实现方式

为了实现ResourceManager的高可用性(HA),必须解决状态同步的问题。这通常通过共享存储来完成,其中最常见的方式包括使用NFS(Network File System)、HDFS等作为共享存储介质。

  • 基于NFS的实现

    • ResourceManager将其状态信息(如正在运行的应用程序列表、任务进度等)持久化到NFS上的指定目录。
    • 当Active ResourceManager发生故障时,Standby ResourceManager可以从NFS加载最新的状态信息并继续执行任务。
  • 基于HDFS的实现

    • 类似于NFS的方式,只不过这里使用的是HDFS作为存储介质。
    • 这种方法的好处是可以利用HDFS自身的容错能力和分布式特性,进一步增强可靠性。

简单比喻:就像两个同事共同维护一份文档,平时只有一个人编辑(Active RM),但如果这个人离开办公室(宕机),另一个人可以通过查看他们共同保存在云端(共享存储)的最新版本继续工作(Standby RM接管)。

你可能感兴趣的:(hdfs,架构,java)