一、资源管理模型
集群资源管理模型通常由两个部分组成,即资源表示模型和资源分配模型,由于这两个部分是耦合的,所有优化集群资源管理时需要同时结合这两个部分考虑,资源表示模型用于描述集群资源的组织方式,是集群资源统一管理的基础,从狭义上来讲,计算资源是指具有计算能力的资源,如CPU GPU等等,但实际上,对系统计算有影响的资源都可以划分到计算资源的范畴,包括内存容量,磁盘容量 IO和网络带宽等等,合理的资源表示模型可以有效的利用资源,提高集群的利用率
1:基于slot的资源表示模型
集群中每个节点的资源都是多维的,包括CPU 、内存 、网络 I/O 和磁盘 I/O,采用slot组织各个节 点上的计算资源。实际上,基于slot的资源表示模型就是各个节点上的资源等量切分成若干份,每一份用一个slot表示,同时规定任务可以根据实际需求占用多个slot。通过引入slot这一概念,各个节点上的多维度资源被抽象成单一维度的slot,这样可以把复杂的多维度资源分配问题转化成简单的slot分配问题,从而大大降低了资源管理问题的复杂度
更进一步说,slot相当于任务运行许可证,一个任务只有得到该许可证后才能获得运行的机会,这意味着每个节点上的slot数量决定了该节点上最大允许的任务并发度
2:基于最大最小公平原则的资源分配模型
对于任何共享集群的系统,资源分配都是一个至关重要的模块,一个最常用的分配策略是最大最小公平原则,其最早用于控制网络流量,以实现公平分配网络带宽,最大最小策略的基本含义就是使得资源分配的最小分配量尽可能最大,它可以防止任何网络流被饿死,同时在一定程度上尽可能地增加每个流的速率,因此最大最小公平策略被认为是一种很好的权衡有效性和公平性的自由分配策略
二、资源调度策略
在分布式计算领域中,资源分配问题是一个 任务调度问题,它的主要任务是根据当前集群中各个节点上的资源的剩余情况与各个用户作业的服务质量要求在资源和作业之间做出最优的匹配,由于用户对作业服务质量的要求是多样化的,分布式系统中的任务调度是一个多目标优化的问题,也是要给NP-Hard问题
1:Capacity Scheduler调度
Capacity Scheduler 调度器是解决多用户情况下共享集群资源的调度方式 ,使每个提交的计算任务都可以在合理的时间内完成
将总体的集群资源以可以预测和简单的方式划分到公司的多个子部门和机构,主要是Job队列的方式
每个Job队列都有一个 capacity 的保证,也同时提供资源弹性功能
2:Fair Scheduler调度
公平调度是一种赋予作业(Job)资源的方法,它的目的是让所有作业随着时间的 推移都能平均地获取等同的共享资源
当单独一个作业运行时,它将使用整个集群。 当有其他作业被提交上来时 ,系 统会将任务 (task)空闲时间片 (slot)赋给这些新的作业,以使每一个作业大概获取到等量的 CPU 时间
三、在YARN上运行计算框架
YARN 是一个资源管理系统,负责集群资源的管理和分配。如果想将一个新的应用程序运行在 YARN 之上,通常需要编写两个组件,即 Client和 ApplicationMaster
编写一个 YARN Application 涉及下面3个RPC协议
ClientRMProtocol
AMRMProtocol
ContainerManager
创作不易 觉得有帮助请点赞关注收藏~~~