一种资源调度方法、系统及主节点与流程

文档序号:12494074阅读:283来源:国知局
一种资源调度方法、系统及主节点与流程

本发明涉及调度技术,具体设计一种资源调度方法、系统及主节点。



背景技术:

Mesos是Apache下的开源分布式资源管理框架,能够实现多种计算框架的统一集群管理和调度。其目标是整合数据中心资源,进行虚拟池化,对应用开放诸如中央处理器(CPU)、内存和输入/输出(I/O)这些基本资源,类似操作系统将处理器资源和存储器资源放入资源池,使其可以为不同的进程协调分配和释放资源。

Mesos采用了Master/Slave结构,图1为现有技术中Mesos架构示意图;如图1所示,Mesos架构包括主节点(Mesos Master)、从节点(Mesos Slave)、计算框架(Framework)和执行器(Executor)。其中,主节点协调全部的从节点,并确定每个从节点的可用资源,聚合计算跨节点的所有可用资源的报告,然后向注册到主节点的计算框架(Framework)发出资源邀约。计算框架(Framework)指外部计算框架,如图1中所示的Hadoop、MPI等。计算框架(Framework)根据任务需求,选择接受或拒绝来自主节点的资源邀约;如果计算框架(Framework)接受邀约,主节点负责协调计算框架(Framework)和从节点进行任务调度。目前,Mesos中的使用的调度机制被称为“ResourceOffer”,采用了基于资源量的调度机制,在Mesos架构中,从节点直接将资源量(如CPU和内存)上报给主节点,由主节点采用DRF(Dominant Resource Fairness)等机制将资源量分配给Framework,使资源分配相对公平,不偏向于任何用户,保证每个用户(Framework)获取了相同比例的支配性资源,例如:Framework A获取了2/3的内存资源,Framework B获取了2/3的CPU资源,则 资源调度处理流程如下:

1、Slave1向Master上报4CPU和8GB内存的空闲资源,Master调用分配模块,通知Framework A所有可用的空闲资源;

2、Master发送当前空闲资源的描述信息(Resource Offer)给Framework A;

3、Framework A的调度器回复Master,运行两个任务(task)在Slave 1上,第一个任务使用了2CPU、1GB内存,第二个任务使用了2CPU、2GB内存;

4、Master把任务描述信息发送给Slave 1,Slave 1分配适当的资源给Framework的执行器,然后由Framework的执行器加载这两个任务。执行任务之后,Slave 1剩余资源为0CPU和5GB内存。

Mesos架构的资源调度主要从满足Framework需求的角度进行资源分配,一方面,可能导致某些Slave节点在运行指定任务后,存在剩余资源,但是该剩余资源又不足以分配给其它任务;另一方面由于Framework自身设置的过滤条件,如允许Framework只接收“剩余资源量大于L的Slave”,通过这一过滤条件分配给该Framework的Slave上存在剩余资源,该剩余资源又不足以分配给其他任务运行,这样便产生了大量的资源碎片。另外,Mesos架构主要依赖于主节点向Framework推送可用资源,再进行资源协商,协商过程需要一定时间,实时性较差。



技术实现要素:

为解决现有存在的技术问题,本发明实施例提供一种资源调度方法、系统及主节点,能够减少资源碎片的产生,提高资源利用率。

为达到上述目的,本发明实施例的技术方案是这样实现的:

本发明实施例提供了一种资源调度方法,所述方法包括:

主节点获得所有从节点的剩余资源量,基于所述剩余资源量将对应的从节点信息划分至对应的资源子集中;其中,预设的资源集合包括多个资源子集,所述资源子集对应预设资源量范围;相邻两个资源子集的资源量范围连续分布;

所述主节点接收第一计算框架(Framework)的资源需求信息,基于所述 资源需求信息在所述资源集合中获得满足所述资源需求信息的第K资源子集;K为正整数;

确定所述第K资源子集中包含从节点信息时,所述第K资源子集的资源调度器从所述第K资源子集中选择满足预设条件的第一从节点信息;

所述主节点获得所述第一从节点信息,基于所述第一从节点信息将所述第一从节点的资源分配给所述第一Framework。

上述方案中,所述资源集合中的多个资源子集按资源量范围由小到大排序;

则所述第K资源子集不包含从节点信息时,所述方法包括:所述主节点从所述资源集合的第K+1资源子集开始至第N资源子集为止进行查找匹配,获得包含从节点信息的第L资源子集;其中,N和L均为正整数,且L大于K+1且小于等于N;

所述第L资源子集的资源调度器从所述第L资源子集中选择满足预设条件的第二从节点信息;

所述主节点获得所述第二从节点信息,基于所述第二从节点信息将所述第二从节点的资源分配给所述第一Framework。

上述方案中,从第K+1资源子集开始至第N资源子集为止进行查找匹配,所有资源子集中均不包含从节点信息时,所述方法还包括:

所述主节点从所述资源集合的第M资源子集开始进行查找匹配,获得包含从节点信息的第P资源子集;其中,所述第M资源子集在所述资源集合中的资源量范围最大;P为正整数,且P小于等于M;

所述第P资源子集的资源调度器从所述第P资源子集中选择满足预设条件的第三从节点信息;

所述主节点获得所述第三从节点信息,基于所述第三从节点信息将所述第三从节点的资源分配给所述第一Framework。

上述方案中,所述满足预设条件,包括:

资源子集中从节点的剩余资源量与所述资源需求信息相差最小的从节点确认为满足预设条件。

上述方案中,所述基于所述第一从节点信息将所述第一从节点的资源分配给所述第一Framework,包括:

所述主节点将所述第一从节点的剩余资源量生成空闲资源信息发送至所述第一Framework,以使所述第一Framework基于所述剩余资源量在所述第一从节点运行任务。

本发明实施例还提供了一种主节点,所述主节点包括:通讯单元和资源管理单元;其中,

所述通讯单元,用于获得所有从节点的剩余资源量,将所述剩余资源量发送至所述资源管理单元;还用于接收第一计算框架Framework的资源需求信息,讲所述资源需求信息发送至所述资源管理单元;还用于从所述第K资源子集的资源调度器获得所述第一从节点信息,基于所述第一从节点信息将所述第一从节点的资源分配给所述第一Framework;

所述资源管理单元,用于基于所述剩余资源量将对应的从节点信息划分至对应的资源子集中;其中,预设的资源集合包括多个资源子集,所述资源子集对应预设资源量范围;相邻两个资源子集的资源量范围连续分布;还用于基于所述资源需求信息在所述资源集合中获得满足所述资源需求信息的第K资源子集;K为正整数;确定所述第K资源子集中包含从节点信息时,使能所述第K资源子集的资源调度器。

上述方案中,所述资源集合中的多个资源子集按资源量范围由小到大排序;

所述资源管理单元,还用于确定所述第K资源子集不包含从节点信息时,从所述资源集合的第K+1资源子集开始至第N资源子集为止进行查找匹配,获得包含从节点信息的第L资源子集;其中,N和L均为正整数,且L大于K+1且小于等于N;使能所述第L资源子集的资源调度器;

所述通讯单元,还用于从所述第L资源子集的资源调度器获得所述第二从节点信息,基于所述第二从节点信息将所述第二从节点的资源分配给所述第一Framework。

上述方案中,所述资源管理单元,还用于从第K+1资源子集开始至第N资 源子集为止进行查找匹配,所有资源子集中均不包含从节点信息时,从所述资源集合的第M资源子集开始进行查找匹配,获得包含从节点信息的第P资源子集;其中,所述第M资源子集在所述资源集合中的资源量范围最大P为正整数,且P小于等于M;;使能所述第P资源子集的资源调度器;

所述通讯单元,还用于从所述第P资源子集的资源调度器获得所述第三从节点信息,基于所述第三从节点信息将所述第三从节点的资源分配给所述第一Framework。

上述方案中,所述满足预设条件,包括:

资源子集中从节点的剩余资源量与所述资源需求信息相差最小的从节点确认为满足预设条件。

上述方案中,所述通讯单元,用于将所述第一从节点的剩余资源量生成空闲资源信息发送至所述第一Framework,以使所述第一Framework基于所述剩余资源量在所述第一从节点运行任务。

本发明实施例还提供了一种资源调度系统,所述系统包括:主节点、至少一个计算框架Framework和资源集合平台;所述资源集合平台中包括多个资源子集,所述资源子集对应预设资源量范围;相邻两个资源子集的资源量范围连续分布;每个资源子集对应一个资源调度器;

所述主节点,用于获得所有从节点的剩余资源量,基于所述剩余资源量将对应的从节点信息划分至所述资源集合平台对应的资源子集中;还用于接收第一计算框架Framework的资源需求信息,基于所述资源需求信息在所述资源集合中获得满足所述资源需求信息的第K资源子集;K为正整数;其中,所述第一Framework为所述至少一个Framework中的任一Framework;还用于获得所述第一从节点信息,基于所述第一从节点信息将所述第一从节点的资源分配给所述第一Framework;

所述资源集合平台,用于通过所述第K资源子集的资源调度器确定所述第K资源子集中包含从节点信息时,从所述第K资源子集中选择满足预设条件的第一从节点信息,将所述第一从节点信息发送至所述主节点。

上述方案中,所述资源集合平台中的多个资源子集按资源量范围由小到大排序;

所述主节点,还用于所述第K资源子集的资源调度器确定不包含从节点信息时,从所述资源集合平台的第K+1资源子集开始至第N资源子集为止进行查找匹配,获得包含从节点信息的第L资源子集;其中,N和L均为正整数,且L大于K+1且小于等于N;还用于获得所述第二从节点信息,基于所述第二从节点信息将所述第二从节点的资源分配给所述第一Framework;

所述资源集合平台,还用于通过所述第L资源子集的资源调度器确定所述第L资源子集中包含从节点信息时,从所述第L资源子集中选择满足预设条件的第二从节点信息,将所述第二从节点信息发送至所述主节点。

上述方案中,所述主节点,还用于从第K+1资源子集开始至第N资源子集为止进行查找匹配,所有资源子集中均不包含从节点信息时,从所述资源集合的第M资源子集开始进行查找匹配,获得包含从节点信息的第P资源子集;其中,所述第M资源子集在所述资源集合中的资源量范围最大;P为正整数,且P小于等于M;还用于获得所述第三从节点信息,基于所述第三从节点信息将所述第三从节点的资源分配给所述第一Framework;

所述资源集合平台,还用于通过所述第P资源子集的资源调度器确定所述第P资源子集中包含从节点信息时,从所述第P资源子集中选择满足预设条件的第三从节点信息,将所述第三从节点信息发送至所述主节点。

本发明实施例提供的资源调度方法、系统及主节点,所述方法包括:主节点获得所有从节点的剩余资源量,基于所述剩余资源量将对应的从节点信息划分至对应的资源子集中;其中,预设的资源集合包括多个资源子集,所述资源子集对应预设资源量范围;相邻两个资源子集的资源量范围连续分布;所述主节点接收第一计算框架Framework的资源需求信息,基于所述资源需求信息在所述资源集合中获得满足所述资源需求信息的第K资源子集;K为正整数;确定所述第K资源子集中包含从节点信息时,所述第K资源子集的资源调度器从所述第K资源子集中选择满足预设条件的第一从节点信息;所述主节点获得所 述第一从节点信息,基于所述第一从节点信息将所述第一从节点的资源分配给所述第一Framework。如此,采用本发明实施例的技术方案,采用资源集合中资源子集的梯度划分机制,在选择从节点时,选择剩余资源量与资源需求量最为接近的从节点,从而在该从节点执行任务后,剩余资源量最小,也即保证了资源碎片最小,从而提高了资源利用率。

附图说明

图1为现有技术中Mesos架构示意图;

图2为本发明实施例的资源调度系统的应用示意图;

图3为本发明实施例一的资源调度方法的流程示意图;

图4为本发明实施例二的资源调度方法的流程示意图;

图5为本发明实施例三的资源调度方法的流程示意图;

图6为本发明实施例的资源调度平台的一种结构示意图;

图7为本发明实施例的主节点的组成结构示意图。

具体实施方式

下面结合附图及具体实施例对本发明作进一步详细的说明。

图2为本发明实施例的资源调度系统的应用示意图;如图2所示,本应用示意在图1所示的基础上,还包括,资源集合,所述资源集合中包括至少一个资源子集,每个资源子集对应预设的资源量范围,且相邻两个资源子集的资源量范围连续分布。例如,第一资源子集的资源量范围为l~l+n,相邻的第二资源子集的资源量范围为l+n~l+2n,以此类推;其中,l和n均为正整数;每个资源子集对应一个资源调度器。所述资源集合可设置于主节点中,或者资源集合平台中,所述主节点用于对所述资源集合中的各个资源子集进行维护和管理。在本发明各实施例中,所述主节点均为Mesos Master,所述从节点均为Mesos Slave,以下均同。

当然,图2仅为本发明实施例的一种应用示意,不限于上述示意。

实施例一

本发明实施例提供了一种资源调度方法。图3为本发明实施例一的资源调度方法的流程示意图;如图3所示,所述方法包括:

步骤201:主节点获得所有从节点的剩余资源量,基于所述剩余资源量将对应的从节点信息划分至对应的资源子集中;其中,预设的资源集合包括多个资源子集,所述资源子集对应预设资源量范围;相邻两个资源子集的资源量范围连续分布。

本实施例中,预先设置资源集合,所述资源集合可设置于主节点中,或者资源集合平台中,由所述主节点对所述资源集合进行维护和管理。具体的,所述资源集合中包括多个资源子集,每个资源子集对应预设的资源量范围,且相邻两个资源子集的资源量范围连续分布。例如,第一资源子集的资源量范围为l~l+n,相邻的第二资源子集的资源量范围为l+n~l+2n,以此类推;其中,l和n均为正整数。在本示意中,每个资源子集对应的资源量的范围跨度相等,均为n,在其他实施方式中,各个资源子集对应的资源量的范围跨度也可不相等,或部分资源子集对应的资源量的范围跨度相等,本实施例中不做详细描述。其中,所述资源子集对应的资源量为单一资源量,例如CPU资源量,或内存资源量,当然,不限于上述资源量。

进一步地,所述主节点定期或不定期的获得与之关联的所有从节点的剩余资源量,依据所述剩余资源量将对应的从节点划分至对应的资源子集中;例如,当某一从节点的剩余资源量为a,判断a落入资源量范围l+n~l+2n,则将所述从节点划分至第二资源子集中。

步骤202:所述主节点接收第一Framework的资源需求信息,基于所述资源需求信息在所述资源集合中获得满足所述资源需求信息的第K资源子集;K为正整数。

这里,所述第一Framework为已经注册在所述主节点上的至少一个Framework中的任一Framework。作为一种实施方式,所述第一Framework向所述主节点发送的资源需求信息,所述资源需求信息为所述第一Framework中 满足预设的过滤条件的最小资源需求信息。例如,所述第一Framework中若预先设置的过滤条件为“剩余资源量大于X的从节点”,则所述资源需求信息中包括的最小资源需求量为X,也即选择的从节点的剩余资源量要大于等于X;其中,X为正整数。

进一步地,所述主节点接收到所述第一Framework的资源需求信息后,获得其中携带的资源需求量,按所述资源需求量在所述资源集合中获得满足所述资源需求量的第K资源子集;其中,所述资源需求量在所述第K资源子集的资源量范围中。

步骤203:确定所述第K资源子集中包含从节点信息时,所述第K资源子集的资源调度器从所述第K资源子集中选择满足预设条件的第一从节点信息。

本实施例中,所述资源集合中的至少一个资源子集可包括至少一个从节点信息,当然,也可能不包括从节点信息,即,相应的资源子集为空。则所述主节点获得满足资源需求信息的第K资源子集后,首先判断所述第K资源子集是否非空,确定所述第K资源子集不为空,即所述第K资源子集中包括至少一个从节点信息后,指示所述第K资源子集的资源调度器对所述第K资源子集中的从节点进行选择,选择满足预设条件的第一从节点信息,所述第一从节点为为所述第一Framework分配的从节点。

具体的,所述满足预设条件,包括:资源子集中从节点的剩余资源量与所述资源需求信息相差最小的从节点确认为满足预设条件。如当所述第K资源子集包括至少两个从节点信息时,则分别计算所述两个从节点的剩余资源量与所述资源需求信息中的资源需求量的差值,选择差值最小的从节点信息作为满足预设条件的第一从节点信息。进一步地,将所述第一从节点信息发送至所述主节点。

步骤204:所述主节点获得所述第一从节点信息,基于所述第一从节点信息将所述第一从节点的资源分配给所述第一Framework。

这里,所述主节点获得所述第一从节点信息后,所述方法还包括:所述主节点将所述第一从节点的剩余资源量生成空闲资源信息发送至所述第一 Framework,以使所述第一Framework基于所述剩余资源量在所述第一从节点运行任务。具体的,所述主节点获得所述第一从节点信息后,依据现有的调度机制“Resource Offer”进行调度,即生成包含有所述第一从节点的剩余资源信息的“Resource Offer”并发送至所述第一Framework,所述第一Framework的调度器回复所述主节点,基于所述第一从节点的剩余资源运行任务;另一方面,所述主节点向所述第一从节点发送任务描述信息,以指示所述第一从节点运行所述第一Framework的资源需求量为X的任务;所述第一从节点接收到所述任务描述信息后,分配相应的资源给所述第一Framework的执行器(Executor),再由所述第一Framework的执行器(Executor)执行任务。

采用本发明实施例的技术方案,一方面,采用资源集合中资源子集的梯度划分机制,在选择从节点时,选择剩余资源量与资源需求量最为接近的从节点,从而在该从节点执行任务后,剩余资源量最小,也即保证了资源碎片最小,从而提高了资源利用率;另一方面,在选定从节点后,通过原有的资源调度机制(如DRF机制),将资源分配给Framework,使资源分配相对公平,满足了Framework的需求。

实施例二

本发明实施例还提供了一种资源调度方法,图4为本发明实施例二的资源调度方法的流程示意图;如图4所示,本实施例在实施例一的资源调度方法的基础上,还包括:

步骤205:确定所述第K资源子集不包含从节点信息时,所述主节点从所述资源集合的第K+1资源子集开始至第N资源子集为止进行查找匹配,获得包含从节点信息的第L资源子集;其中,N和L均为正整数,且L大于K+1且小于等于N。

本实施例中,所述第K资源子集不包含从节点信息,即所述第K资源子集为空,也即所述第K资源子集中没有从节点信息供选择时,所述主节点需要确定其他资源子集。具体的,所述资源集合中的多个资源子集按资源量范围由小到大排序,即第一资源子集的资源量范围为l~l+n,相邻的第二资源子集的资源 量范围为l+n~l+2n,以此类推。则在所述第K资源子集不包含从节点信息,为了满足所述第一Framework的资源需求,需在资源量范围更大的资源子集中进行选择;则所述主节点从所述第K+1资源子集开始至第N资源子集为止进行查找匹配,获得包含从节点信息的第L资源子集。具体的,所述主节点先在所述第K+1资源子集中进行查找,确定所述第K+1资源子集中包含从节点信息时,则使能所述第K+1资源子集的资源调度器选择满足预设条件的从节点信息;相应的,当确定所述第K+1资源子集中不包含从节点信息,进一步查找第K+2资源子集,直至查找到第N资源子集为止,获得包含从节点信息的资源子集。本实施例中,N的数值预先设置,当查找到所述第N资源子集后仍未获得包含有从节点信息的资源子集后,则所述主节点迅速改变查找策略,避免查找匹配次数过多导致用户体验不佳。进一步地,所述主节点指示所述第L资源子集的资源调度器对所述第L资源子集中的从节点进行选择。

步骤206:所述第L资源子集的资源调度器从所述第L资源子集中选择满足预设条件的第二从节点信息。

具体的,所述满足预设条件,包括:资源子集中从节点的剩余资源量与所述资源需求信息相差最小的从节点确认为满足预设条件。如当所述第L资源子集包括至少两个从节点信息时,则分别计算所述两个从节点的剩余资源量与所述资源需求信息中的资源需求量的差值,选择差值最小的从节点信息作为满足预设条件的第二从节点信息。进一步地,将所述第二从节点信息发送至所述主节点。

步骤207:所述主节点获得所述第二从节点信息,基于所述第二从节点信息将所述第二从节点的资源分配给所述第一Framework。

这里,所述主节点获得所述第二从节点信息后,所述方法还包括:所述主节点将所述第二从节点的剩余资源量生成空闲资源信息发送至所述第一Framework,以使所述第一Framework基于所述剩余资源量在所述第二从节点运行任务。具体的,所述主节点获得所述第二从节点信息后,依据现有的调度机制“Resource Offer”进行调度,即生成包含有所述第二从节点的剩余资源信 息的“Resource Offer”并发送至所述第一Framework,所述第一Framework的调度器回复所述主节点,基于所述第二从节点的剩余资源运行任务;另一方面,所述主节点向所述第二从节点发送任务描述信息,以指示所述第二从节点运行所述第一Framework的资源需求量为X的任务;所述第一从节点接收到所述任务描述信息后,分配相应的资源给所述第一Framework的执行器(Executor),再由所述第一Framework的执行器(Executor)执行任务。

采用本发明实施例的技术方案,一方面,采用资源集合中资源子集的梯度划分机制,在选择从节点时,选择剩余资源量与资源需求量最为接近的从节点,从而在该从节点执行任务后,剩余资源量最小,也即保证了资源碎片最小,从而提高了资源利用率;另一方面,在选定从节点后,通过原有的资源调度机制(如DRF机制),将资源分配给Framework,使资源分配相对公平,满足了Framework的需求。

实施例三

本发明实施例还提供了一种资源调度方法,图5为本发明实施例三的资源调度方法的流程示意图;如图5所示,本实施例在实施例二的资源调度方法的基础上,还包括:

步骤208:从第K+1资源子集开始至第N资源子集为止进行查找匹配,所有资源子集中均不包含从节点信息时,所述主节点从所述资源集合的第M资源子集开始进行查找匹配,获得包含从节点信息的第P资源子集;其中,所述第M资源子集在所述资源集合中的资源量范围最大;P为正整数,且P小于等于M。

本实施例中,所述第K+1资源子集开始至第N资源子集为止均不包含从节点信息,即所述第K+1资源子集开始至第N资源子集为止均为空,也即所述第K+1资源子集开始至第N资源子集为止中均没有从节点信息供选择时,所述主节点需要确定其他资源子集。则本实施例中,所述主节点从资源量范围最大的资源子集进一步按照资源量范围由大到小进行查找匹配,获得包含有从节点信息的第P资源子集。进一步地,所述主节点指示所述第P资源子集的资源调度 器对所述第P资源子集中的从节点进行选择。

步骤209:所述第P资源子集的资源调度器从所述第P资源子集中选择满足预设条件的第三从节点信息。

具体的,所述满足预设条件,包括:资源子集中从节点的剩余资源量与所述资源需求信息相差最小的从节点确认为满足预设条件。如当所述第P资源子集包括至少两个从节点信息时,则分别计算所述两个从节点的剩余资源量与所述资源需求信息中的资源需求量的差值,选择差值最小的从节点信息作为满足预设条件的第二从节点信息。进一步地,将所述第二从节点信息发送至所述主节点。

步骤210:所述主节点获得所述第三从节点信息,基于所述第三从节点信息将所述第三从节点的资源分配给所述第一Framework。

这里,所述主节点获得所述第三从节点信息后,所述方法还包括:所述主节点将所述第三从节点的剩余资源量生成空闲资源信息发送至所述第一Framework,以使所述第一Framework基于所述剩余资源量在所述第三从节点运行任务。具体的,所述主节点获得所述第三从节点信息后,依据现有的调度机制“Resource Offer”进行调度,即生成包含有所述第三从节点的剩余资源信息的“Resource Offer”并发送至所述第一Framework,所述第一Framework的调度器回复所述主节点,基于所述第三从节点的剩余资源运行任务;另一方面,所述主节点向所述第三从节点发送任务描述信息,以指示所述第三从节点运行所述第一Framework的资源需求量为X的任务;所述第三从节点接收到所述任务描述信息后,分配相应的资源给所述第一Framework的执行器(Executor),再由所述第一Framework的执行器(Executor)执行任务。

采用本发明实施例的技术方案,一方面,采用资源集合中资源子集的梯度划分机制,在选择从节点时,首先按照资源量范围由小到大进行查找匹配,选择剩余资源量与资源需求量最为接近的从节点,从而在该从节点执行任务后,剩余资源量最小,也即保证了资源碎片最小;在未找到合适的从节点时,再按照资源量范围由大到小进行查找匹配,选择剩余资源量最大的从节点,从而在 该从节点执行任务后,剩余资源量最大,使之可以继续执行其他的任务;从而提高了资源利用率;另一方面,在选定从节点后,通过原有的资源调度机制(如DRF机制),将资源分配给Framework,使资源分配相对公平,满足了Framework的需求。

本发明实施例一至实施例三中,所述资源集合为表征一种资源量的资源集合,例如CPU资源量,或内存资源量,当然,不限于上述资源量。当主节点需要对至少两种资源量同时调度时,可以理解为,预设至少两个资源集合,每个资源集合分别表征一种资源量,例如,第一资源集合对应CPU资源量,第二资源集合对应内存资源量等等。当主节点接收到Framework的资源需求信息时,首先确定主导资源(或支配性资源),所述主导资源(或支配性资源)为所述Framework相对于其他资源来说更为紧缺或更为需要的资源。进一步地,所述主节点基于所述主导资源(或支配性资源)参照本发明实施例的资源调度方法进行资源分配,在资源分配完成后,更新除所述主导资源(或支配性资源)以外的其他资源对应的资源集合信息。

实施例四

本发明实施例还提供了一种资源调度系统,所述资源调度系统的组成结构可参照图2所示,所述系统包括:主节点11、至少一个Framework 13和资源集合平台12;所述资源集合平台12中包括多个资源子集,所述资源子集对应预设资源量范围;相邻两个资源子集的资源量范围连续分布;每个资源子集对应一个资源调度器;

所述主节点11,用于获得所有从节点的剩余资源量,基于所述剩余资源量将对应的从节点信息划分至所述资源集合平台12对应的资源子集中;还用于接收第一Framework 13的资源需求信息,基于所述资源需求信息在所述资源集合中获得满足所述资源需求信息的第K资源子集;K为正整数;其中,所述第一Framework 13为所述至少一个Framework 13中的任一Framework 13;还用于获得所述第一从节点信息,基于所述第一从节点信息将所述第一从节点的资源分配给所述第一Framework 13;

所述资源集合平台12,用于通过所述第K资源子集的资源调度器确定所述第K资源子集中包含从节点信息时,从所述第K资源子集中选择满足预设条件的第一从节点信息,将所述第一从节点信息发送至所述主节点11。

本实施例中,所述资源集合平台12可设置于主节点11中,或者独立设置的资源集合平台12,由所述主节点11对所述资源集合平台12进行维护和管理。具体的,所述资源集合平台12中包括多个资源子集,每个资源子集对应预设的资源量范围,且相邻两个资源子集的资源量范围连续分布。例如,第一资源子集的资源量范围为l~l+n,相邻的第二资源子集的资源量范围为l+n~l+2n,以此类推;其中,l和n均为正整数。在本示意中,每个资源子集对应的资源量的范围跨度相等,均为n,在其他实施方式中,各个资源子集对应的资源量的范围跨度也可不相等,或部分资源子集对应的资源量的范围跨度相等,本实施例中不做详细描述。其中,所述资源子集对应的资源量为单一资源量,例如CPU资源量,或内存资源量,当然,不限于上述资源量。

其中,所述主节点11定期或不定期的获得与之关联的所有从节点的剩余资源量,依据所述剩余资源量将对应的从节点划分至对应的资源子集中;例如,当某一从节点的剩余资源量为a,判断a落入资源量范围l+n~l+2n,则将所述从节点划分至第二资源子集中。

本实施例中,这里,所述第一Framework为已经注册在所述主节点11上的至少一个Framework中的任一Framework。作为一种实施方式,所述第一Framework向所述主节点11发送的资源需求信息,所述资源需求信息为所述第一Framework中满足预设的过滤条件的最小资源需求信息。例如,所述第一Framework中若预先设置的过滤条件为“剩余资源量大于X的从节点”,则所述资源需求信息中包括的最小资源需求量为X,也即选择的从节点的剩余资源量要大于等于X;其中,X为正整数。进一步地,所述主节点11接收到所述第一Framework的资源需求信息后,获得其中携带的资源需求量,按所述资源需求量在所述资源集合平台12中获得满足所述资源需求量的第K资源子集;其中,所述资源需求量在所述第K资源子集的资源量范围中。

本实施例中,本实施例中,所述资源集合平台12中的至少一个资源子集可包括至少一个从节点信息,当然,也可能不包括从节点信息,即,相应的资源子集为空。则所述主节点11获得满足资源需求信息的第K资源子集后,首先判断所述第K资源子集是否非空,确定所述第K资源子集不为空,即所述第K资源子集中包括至少一个从节点信息后,指示所述第K资源子集的资源调度器对所述第K资源子集中的从节点进行选择,选择满足预设条件的第一从节点信息,所述第一从节点为为所述第一Framework分配的从节点。

具体的,所述满足预设条件,包括:资源子集中从节点的剩余资源量与所述资源需求信息相差最小的从节点确认为满足预设条件。如当所述第K资源子集包括至少两个从节点信息时,则分别计算所述两个从节点的剩余资源量与所述资源需求信息中的资源需求量的差值,选择差值最小的从节点信息作为满足预设条件的第一从节点信息。进一步地,将所述第一从节点信息发送至所述主节点11。

作为一种实施方式,所述资源集合平台12中的多个资源子集按资源量范围由小到大排序;

所述主节点11,还用于所述第K资源子集的资源调度器确定不包含从节点信息时,从所述资源集合平台12的第K+1资源子集开始至第N资源子集为止进行查找匹配,获得包含从节点信息的第L资源子集;其中,N和L均为正整数,且L大于K+1且小于等于N;还用于获得所述第二从节点信息,基于所述第二从节点信息将所述第二从节点的资源分配给所述第一Framework 13;

所述资源集合平台12,还用于通过所述第L资源子集的资源调度器确定所述第L资源子集中包含从节点信息时,从所述第L资源子集中选择满足预设条件的第二从节点信息,将所述第二从节点信息发送至所述主节点11。

本实施例中,所述第K资源子集不包含从节点信息,即所述第K资源子集为空,也即所述第K资源子集中没有从节点信息供选择时,所述主节点11需要确定其他资源子集。具体的,所述资源集合平台12中的多个资源子集按资源量范围由小到大排序,即第一资源子集的资源量范围为l~l+n,相邻的第二资源 子集的资源量范围为l+n~l+2n,以此类推。则在所述第K资源子集不包含从节点信息,为了满足所述第一Framework的资源需求,需在资源量范围更大的资源子集中进行选择;则所述主节点11从所述第K+1资源子集开始至第N资源子集为止进行查找匹配,获得包含从节点信息的第L资源子集。具体的,所述主节点11先在所述第K+1资源子集中进行查找,确定所述第K+1资源子集中包含从节点信息时,则使能所述第K+1资源子集的资源调度器选择满足预设条件的从节点信息;相应的,当确定所述第K+1资源子集中不包含从节点信息,进一步查找第K+2资源子集,直至查找到第N资源子集为止,获得包含从节点信息的资源子集。本实施例中,N的数值预先设置,当查找到所述第N资源子集后仍未获得包含有从节点信息的资源子集后,则所述主节点11迅速改变查找策略,避免查找匹配次数过多导致用户体验不佳。进一步地,所述主节点11指示所述第L资源子集的资源调度器对所述第L资源子集中的从节点进行选择。

作为一种实施方式,所述主节点11,还用于从第K+1资源子集开始至第N资源子集为止进行查找匹配,所有资源子集中均不包含从节点信息时,从所述资源集合的第M资源子集开始进行查找匹配,获得包含从节点信息的第P资源子集;其中,所述第M资源子集在所述资源集合中的资源量范围最大;P为正整数,且P小于等于M;还用于获得所述第三从节点信息,基于所述第三从节点信息将所述第三从节点的资源分配给所述第一Framework 13;

所述资源集合平台12,还用于通过所述第P资源子集的资源调度器确定所述第P资源子集中包含从节点信息时,从所述第P资源子集中选择满足预设条件的第三从节点信息,将所述第三从节点信息发送至所述主节点11。

本实施例中,所述第K+1资源子集开始至第N资源子集为止均不包含从节点信息,即所述第K+1资源子集开始至第N资源子集为止均为空,也即所述第K+1资源子集开始至第N资源子集为止中均没有从节点信息供选择时,所述主节点11需要确定其他资源子集。则本实施例中,所述主节点11从资源量范围最大的资源子集进一步按照资源量范围由大到小进行查找匹配,获得包含有从节点信息的第P资源子集。进一步地,所述主节点11指示所述第P资源子集的 资源调度器对所述第P资源子集中的从节点进行选择。

上述实施例中,所述主节点11获得所述从节点信息后,将所述从节点的剩余资源量生成空闲资源信息发送至所述第一Framework,以使所述第一Framework基于所述剩余资源量在所述从节点运行任务。具体的,所述主节点11获得所述从节点信息后,依据现有的调度机制“Resource Offer”进行调度,即生成包含有所述从节点的剩余资源信息的“Resource Offer”并发送至所述第一Framework,所述第一Framework的调度器回复所述主节点11,基于所述从节点的剩余资源运行任务;另一方面,所述主节点11向所述从节点发送任务描述信息,以指示所述从节点运行所述第一Framework的资源需求量为X的任务;所述从节点接收到所述任务描述信息后,分配相应的资源给所述第一Framework的执行器(Executor),再由所述第一Framework的执行器(Executor)执行任务。

在本发明实施例一至实施例四中,作为一种实施方式,图6为本发明实施例的资源调度平台的一种结构示意图;如图6所示,资源集合(或资源集合平台)设置为多层环状结构,每层环结构表征一个资源子集,所述多层环状结构按预设梯度进行划分,所述梯度表征资源量范围,也即按预设资源量范围划分所述多层环状结构;例如,环1的梯度范围(资源量范围)为l~l+n,则环1中包含资源量范围在l~l+n中的从节点信息,如图6中所示的从节点3和从节点6;环2的梯度范围(资源量范围)为l+n~l+2n,则环2中包含资源量范围在l+n~l+2n中的从节点信息,如图6中所示的从节点1、从节点7、从节点9和从节点10;以此类推,最外环(环M)的梯度范围(资源量范围)为l+(m-1)n~l+mn,则环M中包含资源量范围在l+(m-1)n~l+mn中的从节点信息,如图6中所示的从节点2、从节点5、从节点4和从节点8。其中,每个环(也即每个资源子集)对应一个资源调度器。具体的处理流程可参见实施例一至实施例三中所述,这里不再赘述。

实施例五

基于实施例四,本发明实施例还提供了一种主节点。图7为本发明实施例 的主节点的组成结构示意图,如图7所示,所述主节点包括:通讯单元31和资源管理单元32;其中,

所述通讯单元31,用于获得所有从节点的剩余资源量,将所述剩余资源量发送至所述资源管理单元32;还用于接收第一计算框架Framework的资源需求信息,讲所述资源需求信息发送至所述资源管理单元32;还用于从所述第K资源子集的资源调度器获得所述第一从节点信息,基于所述第一从节点信息将所述第一从节点的资源分配给所述第一Framework;

所述资源管理单元32,用于基于所述剩余资源量将对应的从节点信息划分至对应的资源子集中;其中,预设的资源集合包括多个资源子集,所述资源子集对应预设资源量范围;相邻两个资源子集的资源量范围连续分布;还用于基于所述资源需求信息在所述资源集合中获得满足所述资源需求信息的第K资源子集;K为正整数;确定所述第K资源子集中包含从节点信息时,使能所述第K资源子集的资源调度器。

进一步地,所述通讯单元31,用于将所述第一从节点的剩余资源量生成空闲资源信息发送至所述第一Framework,以使所述第一Framework基于所述剩余资源量在所述第一从节点运行任务。

作为一种实施方式,所述资源集合中的多个资源子集按资源量范围由小到大排序;

所述资源管理单元32,还用于确定所述第K资源子集不包含从节点信息时,从所述资源集合的第K+1资源子集开始至第N资源子集为止进行查找匹配,获得包含从节点信息的第L资源子集;其中,N和L均为正整数,且L大于K+1且小于等于N;使能所述第L资源子集的资源调度器;

所述通讯单元31,还用于从所述第L资源子集的资源调度器获得所述第二从节点信息,基于所述第二从节点信息将所述第二从节点的资源分配给所述第一Framework。

作为一种实施方式,所述资源管理单元32,还用于从第K+1资源子集开始至第N资源子集为止进行查找匹配,所有资源子集中均不包含从节点信息时, 从所述资源集合的第M资源子集开始进行查找匹配,获得包含从节点信息的第P资源子集;其中,所述第M资源子集在所述资源集合中的资源量范围最大P为正整数,且P小于等于M;;使能所述第P资源子集的资源调度器;

所述通讯单元31,还用于从所述第P资源子集的资源调度器获得所述第三从节点信息,基于所述第三从节点信息将所述第三从节点的资源分配给所述第一Framework。

本实施例中,所述满足预设条件,包括:资源子集中从节点的剩余资源量与所述资源需求信息相差最小的从节点确认为满足预设条件。

本领域技术人员应当理解,本发明实施例的主节点中各处理模块的功能,可参照前述资源调度方法的相关描述而理解,本发明实施例的主节点中各处理模块,可通过实现本发明实施例所述的功能的模拟电路而实现,也可以通过执行本发明实施例所述的功能的软件在智能终端上的运行而实现。

本发明实施例五至实施例八中,所述主节点中的资源管理单元,在实际应用中可由所述主节点中的中央处理器(CPU,Central Processing Unit)、数字信号处理器(DSP,Digital Signal Processor)或可编程门阵列(FPGA,Field-Programmable Gate Array)实现;所述主节点中的通讯单元,在实际应用中可由所述主节点中的收发天线或收发机实现。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。

上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来 实现本实施例方案的目的。

另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1