分布式系统中资源的调度方法以及装置与流程

文档序号:11250695阅读:482来源:国知局
分布式系统中资源的调度方法以及装置与流程

本申请涉及分布式系统技术领域,具体涉及一种分布式系统中资源的调度方法。本申请同时涉及一种分布式系统中资源的调度装置、另一种分布式系统中资源的调度方法以及装置。



背景技术:

随着计算机技术和网络技术的不断发展,分布式系统架构的应用越来越广泛。在分布式系统中,用户发起的作业请求往往不能直接获得实现对象,需要经过多个中间服务构件对用户的作业请求进行协同处理,并最终成功执行作业。分布式系统中通常存在三个角色:资源调度器(resourcemanager)、作业方和机器节点(machinenode)。在分布式系统中,资源调度器(resourcemanager)用于协调、分配分布式系统中可用资源;作业方包括作业管理器(jobmaster)以及下属的作业节点(jobworker),其中,作业管理器(jobmaster)用于控制自身下属的所有作业节点(jobworker),负责代表所有作业节点(jobworker)向资源调度器(resourcemanager)申请作业资源,以及向机器节点(machinenode)发送作业程序;作业节点(jobworker)用于执行具体的作业程序,只与作业管理器(jobmaster)之间进行通信;机器节点(machinenode)代表机器负责监管作业程序的执行。

目前,现有技术提供的分布式系统中资源的调度方法,当用户发起一个作业请求时,作业管理器(jobmaster)会向资源调度器(resourcemanager)申请一定数量的资源(如cpu、内存)供作业节点(jobworker)使用;资源调度器(resourcemanager)收到资源的申请请求后,会根据分布式系统中剩余的可用资源计算出可以分配给作业管理器(jobmaster)可用资源列表(如:在a机器上可用1核cpu、1gb内存,在b机器上可用2核cpu、2gb内存),并将资源列表发送给作业管理器(jobmaster)和相应机器节点(machinenode);作业管理器(jobmaster)在收到资源列表后,会将作业节点(jobworker)分配到相应的机器节点(machinenode)执行作业程序;当作业节点(jobworker)执行 完毕时,作业管理器(jobmaster)会通知资源调度器(resourcemanager)归还该作业节点(jobworker)的资源,资源调度器(resourcemanager)收到归还资源的通知消息后,通知机器节点(machinenode)针对作业节点(jobworker)进行资源释放。

上述现有技术提供的分布式系统中资源的调度方法存在明显的缺陷。

上述现有技术提供的分布式系统中资源的调度方法,资源调度器(resourcemanager)向作业管理器(jobmaster)分配机器资源时,与资源调度器(resourcemanager)连接的所有机器都将可能被分配作业,当分布式系统中的机器由于发生硬件故障导致连接中断时,在连接中断的这一时间段内,分配到连接中断的机器上的作业受到影响;此外,当分布式系统中的机器由于发生软件故障进行软件更新或者软件重启时,在进行软件更新或者软件重启的这一时间段内,分配到进行软件更新或者软件重启的机器上的作业同样会受到影响。



技术实现要素:

本申请提供一种分布式系统中资源的调度方法,以解决现有技术的存在的影响作业执行的问题。

本申请同时涉及一种分布式系统中资源的调度装置、另一种分布式系统中资源的调度方法以及装置。

本申请提供一种分布式系统中资源的调度方法,包括:

接收作业方申请资源的申请请求;

读取所述申请请求中包含的所述作业方的资源需求;

根据资源集中各个资源各自预设的状态标识,从所述资源集中查找与所述资源需求匹配的可用资源的资源列表;

将所述资源列表发送至所述作业方,并将所述资源列表发送至所述资源列表中各个资源对应的资源节点。

可选的,所述状态标识包括:

可用状态标识、不可用状态标识和只读状态标识。

可选的,所述资源需求,包括:

资源的数目和类型。

可选的,所述可用资源包括:

状态标识为所述可用状态标识的机器;

相应的,所述资源列表中包含与所述资源需求匹配、且状态标识为所述可用状态标识的各个机器。

可选的,所述从所述资源集中查找与所述资源需求匹配的可用资源的资源列表步骤,采用下述方式:

遍历所述资源集中的机器;

根据所述遍历获得的机器,计算与所述资源需求匹配的可用资源的资源列表。

可选的,按照下述规则进行所述遍历:

遍历所述资源集中状态标识为所述可用状态标识的机器,或者,遍历所述资源集中状态标识为所述不可用状态标识和所述只读状态标识之外的所有机器。

可选的,所述将所述资源列表发送至所述作业方,并将所述资源列表发送至所述资源列表中各个资源对应的资源节点步骤执行后,执行下述步骤:

将所述申请请求插入到所述资源列表中各个资源各自预设的任务队列中。

可选的,所述分布式系统中资源的调度方法,包括:

接收所述资源集中资源的状态标识发生变更的状态变更信息;

根据所述状态变更信息,更新所述状态变更信息对应的资源的状态标识;

结合所述状态变更信息对应的资源在更新前和更新后的状态标识,执行相应的调度动作。

可选的,若更新前的状态标识为所述可用状态标识、更新后的状态标识为所述不可用状态标识,相应的,所述调度动作包括:

遍历所述状态变更信息对应资源各自的任务队列;

向所述任务队列中各个申请请求对应的作业方发送停止作业的消息通知;

根据所述任务队列中申请请求的优先级高低,按照优先级从高到低的顺序依次在所述资源集中为各个申请请求调度相应的资源。

可选的,若更新前的状态标识为所述只读状态标识、更新后的状态标识为所述不可用状态标识,相应的,所述调度动作包括:

遍历所述状态变更信息对应资源各自的任务队列;

向所述任务队列中各个申请请求对应的作业方发送停止作业的消息通知;

根据所述任务队列中申请请求的优先级高低,按照优先级从高到低的顺序依次在所述资源集中依次为各个申请请求调度相应的资源。

可选的,所述将所述资源列表发送至所述作业方,并将所述申请请求插入到所述资源列表中各个资源各自预设的任务队列中步骤执行后,执行下述步骤:

接收所述作业方针对所述可用资源发送的资源释放请求;

通知所述可用资源对应的资源节点进行资源释放。

本申请还提供一种分布式系统中资源的调度装置,包括:

申请请求接收单元,用于接收作业方申请资源的申请请求;

资源需求读取单元,用于读取所述申请请求中包含的所述作业方的资源需求;

资源列表查找单元,用于根据资源集中各个资源各自预设的状态标识,从所述资源集中查找与所述资源需求匹配的可用资源的资源列表;

资源列表发送单元,用于将所述资源列表发送至所述作业方,并将所述资源列表发送至所述资源列表中各个资源对应的资源节点。

可选的,所述状态标识包括:

可用状态标识、不可用状态标识和只读状态标识。

可选的,所述资源需求,包括:

资源的数目和类型。

可选的,所述可用资源包括:

状态标识为所述可用状态标识的机器;

相应的,所述资源列表中包含与所述资源需求匹配、且状态标识为所述可用状态标识的各个机器。

可选的,所述资源列表查找单元,包括:

机器遍历子单元,用于遍历所述资源集中的机器;

资源列表获取子单元,用于根据所述遍历获得的机器,计算与所述资源需求匹配的可用资源的资源列表。

可选的,所述分布式系统中资源的调度装置,包括:

资源列表插入单元,用于将所述申请请求插入到所述资源列表中各个资源各自预设的任务队列中。

可选的,所述分布式系统中资源的调度装置,包括:

状态变更信息接收单元,用于接收所述资源集中资源的状态标识发生变更的状态变更信息;

状态标识更新单元,用于根据所述状态变更信息,更新所述状态变更信息对应的资源的状态标识;

调度动作执行单元,用于结合所述状态变更信息对应的资源在更新前和更新后的状态标识,执行相应的调度动作。

可选的,所述分布式系统中资源的调度装置,包括:

资源释放请求接收单元,用于接收所述作业方针对所述可用资源发送的资源释放请求;

资源释放通知单元,用于通知所述可用资源对应的资源节点进行资源释放。

本申请还提供另一种分布式系统中资源的调度方法,包括:

向资源调度方发送申请资源的申请请求;

接收所述资源调度方发送的、与所述申请请求中包含的所述作业方的资源需求匹配的可用资源的资源列表;

根据所述资源列表,将作业节点分配到所述资源列表中可用资源的资源节点执行作业程序。

可选的,所述资源集中各个资源预设有状态标识,所述状态标识包括:

可用状态标识、不可用状态标识和只读状态标识。

可选的,所述的分布式系统中资源的调度方法,包括:

接收所述资源调度方发送的停止作业的消息通知;

通知所述可用资源的资源节点停止作业。

本申请还提供另一种分布式系统中资源的调度装置,包括:

申请请求发送单元,用于向资源调度方发送申请资源的申请请求;

资源列表接收单元,用于接收所述资源调度方发送的、与所述申请请求中包含的所述作业方的资源需求匹配的可用资源的资源列表;

作业节点分配单元,用于根据所述资源列表,将作业节点分配到所述资源列表中可用资源的资源节点执行作业程序。

与现有技术相比,本申请具有以下优点:

本申请提供的分布式系统中资源的调度方法,包括:接收作业方申请资源的申请请求;读取所述申请请求中包含的所述作业方的资源需求;根据资源集中各个资源各自预设的状态标识,从所述资源集中查找与所述资源需求匹配的可用资源的资源列表;将所述资源列表发送至所述作业方,并将所述资源列表发送至所述资源列表中各个资源对应的资源节点。

本申请提供的分布式系统中资源的调度方法,接收作业方发送的从资源集中申请资源的申请请求,并根据所述申请请求中包含的所述作业方的资源需求,以及根据所述资源集中各个资源预设的状态标识,从所述资源集中查找与所述资源需求匹配的可用资源的资源列表,并将查找到的所述资源列表发送至所述作业方和所述资源列表中各个资源对应的资源节点,所述分布式系统中资源的调度方法,通过所述资源集中各个资源预设的状态标识,区别所述资源集中处于不同状态的资源,从而确定所述资源集中的资源能否被分配作业并执行作业,使发生硬件故障或者软件故障的资源免于被分配作业,降低了分布式系统中作业执行受到的影响,提升了分布式系统的稳定性。

附图说明

附图1是本申请提供的一种分布式系统中资源的调度方法实施例的处理流程图;

附图2是本申请提供的一种分布式系统中资源的调度装置实施例的示意图;

附图3是本申请提供的另一种分布式系统中资源的调度方法实施例的处理流程图;

附图4是本申请提供的另一种分布式系统中资源的调度装置实施例的示意图。

具体实施方式

在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请 能够以很多不同于在此描述的其他方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。

本申请提供一种分布式系统中资源的调度方法,本申请还提供一种分布式系统中资源的调度装置、另一种分布式系统中资源的调度方法以及装置。以下分别结合本申请提供的实施例的附图逐一进行详细说明,并且对方法的各个步骤进行说明。

本申请提供的一种分布式系统中资源的调度方法实施例如下:

参照附图1,其示出了本申请提供的一种分布式系统中资源的调度方法实施例的处理流程图。此外,所述分布式系统中资源的调度方法实施例的各个步骤之间的关系,请根据附图1确定。

步骤s101,接收作业方申请资源的申请请求。

本申请实施例提供的分布式系统,包括资源调度方、作业方和资源节点。所述资源调度方,包括分布式系统中协调和分配资源的角色,例如,分布式系统中的资源调度器(resourcemanager)。

所述作业方,包括分布式系统中用于申请作业资源和执行作业的角色,例如,分布式系统中的作业管理器(jobmaster),以及作业管理器(jobmaster)下属的作业节点(jobworker)。

所述资源节点,包括分布式系统中管理作业执行的角色,例如,分布式系统中的机器节点(machinenode)。

在分布式系统中,海量资源不可避免的会出现各种问题,例如,分布式系统中成千上万台的机器,可能有一台或者数台机器出现磁盘故障、网卡故障等硬件问题,也可能有一台或者数台机器出现系统版本需要更新、软件重启等软件问题,不管机器出现硬件问题还是软件问题,都可能导致机器故障,从而导致机器上执行的作业受到影响。在这种情况下,基于分布式系统中的资源调度方,采用本申请提供的分布式系统中资源的调度方法,针对分布式系统资源集中的资源设置状态标识,通过相应的状态标识区别资源集中的资源是否为可用资源,所述资源调度方接收到所述作业方发送的申请资源的申请请求之后,根据申请请求中包含的作业方申请资源的资源需求,在资源集中查找并匹配相应的可用资源,分配给作业方,所述作业方根据所述资源调度方分配的资源,将作业节点分配到资源节点执行作业,从而提升分布式系统的稳定性。

本申请实施例所述的作业方,包括分布式系统中用于申请作业资源和执行作业的角色,例如,分布式系统中的作业管理器(jobmaster)和作业节点(jobworker)。

所述资源,包括分布式系统中可以使用的对象,以及向用户提供服务的对象,例如,分布式系统机器集群中的机器资源。

所述申请请求,是指所述作业方在收到用户提交的作业之后,向所述资源调度方申请资源时发出的消息请求,例如,分布式系统中的作业管理器(jobmaster)向资源调度器(resourcemanager)申请机器时发出的申请请求。所述消息请求中包含有所述作业方向所述资源调度方申请资源的资源需求。

具体实施时,在所述资源调度方接收所述作业方申请资源的申请请求之前,所述作业方已经接收到用户提交的作业,所述申请请求,正是指所述作业方针对用户提交的作业向所述资源调度方提交的申请请求。本实施例中,接收所述作业方申请资源的申请请求,具体是指接收所述作业方的作业管理器(jobmaster)发送的申请请求,接收到所述申请请求之后,执行下述步骤s102,从所述申请请求中读取所述作业方向所述资源调度方申请资源的资源需求。

步骤s102,读取所述申请请求中包含的所述作业方的资源需求。

本申请实施例所述的资源需求,包括所述作业方在执行用户提交的作业时所需的资源,所述资源需求包括:资源的数目和类型。

例如,分布式系统中,作业管理器(jobmaster)向资源调度器(resourcemanager)申请机器时发出的申请请求中,包含的资源需求为100个cpu和100g内存,表示作业管理器(jobmaster)整体需要的资源为100个cpu和100g内存,该作业管理器(jobmaster)管理的作业节点有100个,每个作业节点需要的资源为1个cpu和1g内存。

如上所述,上述步骤s101接收的所述作业方申请资源的申请请求中,包含所述作业方向所述资源调度方申请资源的资源需求,本步骤中,从所述申请请求中读取所述资源需求。

步骤s103,根据资源集中各个资源各自预设的状态标识,从所述资源集中查找与所述资源需求匹配的可用资源的资源列表。

本申请实施例所述的资源集,是指分布式系统中所有资源的集合,例如,分布式系统中所有机器的机器集合。

所述状态标识,用于区别所述资源集中处于不同状态的资源。所述资源调度方在向所述作业方分配资源时,针对状态标识不同的资源,设置相应的调度策略。

所述状态标识,包括:可用状态标识、不可用状态标识和只读状态标识。

例如,分布式系统中,机器的状态标识为所述可用状态标识,表明该机器运行正常,所述资源调度方在向所述作业方分配资源时,可正常调度该机器;

若机器的状态标识为所述不可用状态标识,表明该机器出现故障,无法正常运行,需要将该机器上执行的作业调度到其他正常运行的机器上;此外,所述资源调度方在向所述作业方分配资源时,由于该机器无法正常工作,因此拒绝向该机器上调度作业,避免了在该机器上执行的作业受到影响;

若机器的状态标识为所述只读状态标识,表明该机器的部分功能受到影响,但该机器当前仍然处于运行状态;此外,所述资源调度方在向所述作业方分配资源时,由于该机器的部分功能受到影响,因此拒绝向该机器上调度作业,进一步避免了在该机器上执行的作业受到影响,待该机器上当前作业执行完毕后,对该机器进行维护,使其恢复正常。

本申请实施例所述的可用资源,包括分布式系统的资源集中状态标识为所述可用状态标识的资源,例如,分布式系统中所有机器的机器集合中状态标识为所述可用状态标识的机器。

所述资源列表,包括所述资源调度方针对所述作业方申请资源的申请请求、向所述作业方调度的所有资源,即:与所述作业方的资源需求匹配的所有资源。并且,所述资源列表中包含的所有资源,均为可用资源,例如,所述资源列表中包含与所述资源需求匹配、且状态标识为所述可用状态标识的各个机器。

本实施例中,根据资源集中各个资源各自预设的状态标识,从所述资源集中查找与所述资源需求匹配的可用资源的资源列表,采用下述方式实现:

遍历所述资源集中的机器;

根据所述遍历获得的机器,计算与所述资源需求匹配的可用资源的资源列表。

例如,如上所述,分布式系统中的作业管理器(jobmaster)向资源调度器(resourcemanager)申请机器时发出的申请请求中,包含的资源需求为100个cpu和100g内存;资源调度器(resourcemanager)遍历分布式系统中的机器, 获得有资源剩余的机器,即:cpu和/或内存有剩余的机器;根据遍历获得的cpu和/或内存有剩余的机器,计算出能够满足100个cpu和100g内存的机器组成的机器列表。

具体实施时,在遍历所述资源集中的机器时,按照下述规则进行所述遍历:遍历所述资源集中状态标识为所述可用状态标识的机器。例如,资源调度器(resourcemanager)在遍历分布式系统中的机器时,根据机器各自的状态标识,只遍历状态标识为所述可用状态标识的机器。

除此之外,在遍历所述资源集中的机器时,还可以采用上述规则之外的其他规则进行遍历,例如,遍历所述资源集中状态标识为所述不可用状态标识和所述只读状态标识之外的所有机器,在此不做限定。

步骤s104,将所述资源列表发送至所述作业方,并将所述资源列表发送至所述资源列表中各个资源对应的资源节点。

本申请实施例所述的资源节点,用于代表资源监管用户作业的执行,例如,分布式系统中的机器节点(machinenode),负责代表机器监管用户作业程序的执行。

分布式系统中的资源节点,在获得所述作业方执行作业的相应资源之后,才允许所述作业方执行作业,例如,分布式系统中的机器,在获得作业节点(jobworker)的资源(如1个cpu和1g内存)之后,才允许作业节点(jobworker)执行作业程序,当作业节点(jobworker)的资源被回收后,机器将强制停止作业节点(jobworker)执行的作业程序。

上述步骤s103查找到与所述资源需求匹配的可用资源的资源列表,本步骤中,将上述步骤s103查找到的所述资源列表发送至所述作业方,并将所述资源列表发送至所述资源列表中各个资源对应的资源节点,便于所述作业方在所述资源节点执行作业。

具体实施时,所述资源集中的各个资源,预先设置有各自的任务队列,所述任务队列中各个申请请求,表示这些申请请求分别占用了该资源上的相应资源。例如,分布式系统中的各个机器,分别设置有各自的任务队列,每一个机器的任务队列中各个申请请求,表示各个申请请求分别占用了该机器上的相应资源。

由此可知,在本步骤将所述资源列表发送至所述资源列表中各个资源对应 的资源节点之后,还包括下述步骤:

将所述申请请求插入到所述资源列表中各个资源各自预设的任务队列中。例如,将所述申请请求分别插入到机器列表中相应机器的任务队列中。

需要说明的是,所述资源预设的任务队列中各个申请请求,还可以用来表示在该资源上执行各个申请请求的相应作业的先后顺序,例如,分布式系统中机器的任务队列中的申请请求,表示在该机器上执行各个申请请求的相应作业程序的先后顺序,优先在该机器上执行插入时间早的申请请求的相应作业程序,在此不做限定。

此外,具体实施时,在将所述申请请求插入到所述资源列表中各个资源各自预设的任务队列中的基础上,还包括所述资源的状态标识变更操作,所述状态标识变更操作采用下述方式实现:

接收所述资源集中资源的状态标识发生变更的状态变更信息;

根据所述状态变更信息,更新所述状态变更信息对应的资源的状态标识;

结合所述状态变更信息对应的资源在更新前和更新后的状态标识,执行相应的调度动作。

如上所述,所述状态标识包括可用状态标识、不可用状态标识和只读状态标识。

(1)若所述资源集中资源的状态标识从所述可用状态标识变更为所述不可用状态标识,则执行下述调度动作:

遍历所述状态变更信息对应资源各自的任务队列;

向所述任务队列中各个申请请求对应的作业方发送停止作业的消息通知;

根据所述任务队列中申请请求的优先级高低,按照优先级从高到低的顺序依次在所述资源集中为各个申请请求调度相应的资源。

分布式系统中的每台机器,都有一个基本的硬件、软件检测程序,当机器出现问题时,检测程序会发出报警或者提示,运维人员通过操作改变机器的状态标识。

例如,分布式系统中,机器由于出现硬件故障无法正常运行,需要立即停止该机器,对其进行故障检修,状态标识从所述可用状态标识变更为所述不可用状态标识,同时,针对该机器的任务队列中的申请请求,需要调度到其他运 行正常的机器的任务队列中:

遍历该机器的任务队列;

向该机器的任务队列中各个申请请求对应的作业方发送停止作业的消息通知;

根据所述任务队列中申请请求的优先级高低,按照优先级从高到低的顺序依次在所述资源集中为各个申请请求调度相应的机器。

此外,该机器的状态标识变更为所述不可用状态标识之后,如上所述,在遍历所述资源集中状态标识为所述可用状态标识的机器时,只遍历状态标识为所述可用状态标识的机器,因此,资源调度器(resourcemanager)在调度机器时,会跳过该状态标识为所述不可用状态标识的机器,不会将新的作业调度到该机器上。

(2)若所述资源集中资源的状态标识从所述不可用状态标识变更为所述可用状态标识;

例如:分布式系统中,机器的硬件故障被排除之后,状态标识从所述不可用状态标识变更为所述可用状态标识,如上所述,该机器的状态标识为所述不可用状态标识时,该机器的任务队列中的申请请求被调度到其他运行正常的机器的任务队列中;并且,在该机器的状态标识为所述不可用状态标识这一时间段内,资源调度器(resourcemanager)不会调度新的作业到该机器上,因此,该机器的任务队列为空。

此外,该机器的状态标识表更为所述可用状态标识之后,该机器能够正常运行,如上所述,资源调度器(resourcemanager)会遍历该机器,可将新的作业调度到该机器上。

(3)若所述资源集中资源的状态标识从所述可用状态标识变更为所述只读状态标识;

例如:分布式系统中,机器出现软件故障,但是当前该机器仍然可以运行,需要在该机器的任务队列中的申请请求处理完毕之后,对该机器进行软件更新或者系统重启,因此,该机器的状态标识从所述可用状态标识变更为所述只读状态标识。

此外,该机器的状态标识表更为所述只读状态标识之后,如上所述,在遍历所述资源集中状态标识为所述可用状态标识的机器时,只遍历状态标识为所 述可用状态标识的机器,因此,资源调度器(resourcemanager)在调度机器时,会跳过该状态标识为所述只读状态标识的机器,不会将新的作业调度到该机器上。

(4)若所述资源集中资源的状态标识从所述只读状态标识变更为所述可用状态标识;

例如:分布式系统中,机器存在的软件故障被排除之后,状态标识从所述只读状态标识变更为所述可用状态标识,表明该机器能够正常运行,如上所述,资源调度器(resourcemanager)可以将新的作业调度到该机器上。

(5)若所述资源集中资源的状态标识从所述不可用状态标识变更为所述只读状态标识;

例如:分布式系统中,机器存在的硬件故障被排除,但由于出现软件故障,状态标识从所述不可用状态标识变更为所述只读状态标识,如上所述,该机器的状态标识为所述不可用状态标识时,该机器的任务队列中的申请请求被调度到其他运行正常的机器的任务队列中,并且,在该机器的状态标识为所述不可用状态标识这一时间段内,资源调度器(resourcemanager)不会调度该机器,因此该机器的任务队列为空。

此外,该机器的状态标识表更为所述只读状态标识之后,如上所述,资源调度器(resourcemanager)在调度机器时,会跳过该状态标识为所述不可用状态标识的机器,不会将新的作业调度到该机器上。

(6)若所述资源集中资源的状态标识从所述只读状态标识变更为所述不可用状态标识,则执行下述调度动作:

遍历所述状态变更信息对应资源各自的任务队列;

向所述任务队列中各个申请请求对应的作业方发送停止作业的消息通知;

根据所述任务队列中申请请求的优先级高低,按照优先级从高到低的顺序依次在所述资源集中为各个申请请求调度相应的资源。

例如:分布式系统中,机器存在的软件故障被排除,但由于出现硬件故障,状态标识从所述只读状态标识变更为所述不可用状态标识,如上所述,该机器的状态标识为所述只读状态标识时,该机器的任务队列中的申请请求仍然需要处理,资源调度器(resourcemanager)不会将新的作业调度到该机器上,因此,只需处理该机器的任务队列中的各个申请请求即可,将该机器的任务队列中的 各个申请请求调度到运行正常的机器的任务队列中。

此外,该机器的状态标识变更为所述不可用状态标识之后,如上所述,资源调度器(resourcemanager)在调度机器时,会跳过该状态标识为所述不可用状态标识的机器,不会将新的作业调度到该机器上。

具体实施时,本步骤执行之后,还可执行资源释放操作,所述资源释放操作具体实现如下:

接收所述作业方针对所述可用资源发送的资源释放请求;

通知所述可用资源对应的资源节点进行资源释放。

例如,分布式系统中,机器对应的机器节点(machinenode)接收到释放资源的通知消息之后,释放相应作业节点(jobworker)占用的cpu和/或内存资源,释放后的cpu和/或内存资源可分别给其他作业节点(jobworker)。

综上所述,所述分布式系统中资源的调度方法,接收作业方发送的从资源集中申请资源的申请请求,并根据所述申请请求中包含的所述作业方的资源需求,以及根据所述资源集中各个资源预设的状态标识,从所述资源集中查找与所述资源需求匹配的可用资源的资源列表,并将查找到的所述资源列表发送至所述作业方和所述资源列表中各个资源对应的资源节点,所述分布式系统中资源的调度方法,通过所述资源集中各个资源预设的状态标识,区别所述资源集中处于不同状态的资源,从而确定所述资源集中的资源能否被分配作业并执行作业,使发生硬件故障或者软件故障的资源免于被分配作业,降低了分布式系统中作业执行受到的影响。

此外,所述分布式系统中资源的调度方法,通过所述资源集中资源状态标识变更操作,针对所述资源集中资源在不同状态标识之间的变更,执行相应的调度动作,完善了分布式系统中由于状态标识的变更作业执行受到的影响,提升了分布式系统的稳定性。

本申请提供的一种分布式系统中资源的调度装置实施例如下:

在上述的实施例中,提供了一种分布式系统中资源的调度方法,与之相对应的,本申请还提供了一种分布式系统中资源的调度装置,下面结合附图进行说明。

参照附图2,其示出了本申请提供的一种分布式系统中资源的调度装置实施例的示意图。

由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关的部分请参见上述提供的方法实施例的对应说明即可。下述描述的装置实施例仅仅是示意性的。

本申请提供一种分布式系统中资源的调度装置,包括:

申请请求接收单元201,用于接收作业方申请资源的申请请求;

资源需求读取单元202,用于读取所述申请请求中包含的所述作业方的资源需求;

资源列表查找单元203,用于根据资源集中各个资源各自预设的状态标识,从所述资源集中查找与所述资源需求匹配的可用资源的资源列表;

资源列表发送单元204,用于将所述资源列表发送至所述作业方,并将所述资源列表发送至所述资源列表中各个资源对应的资源节点。

可选的,所述状态标识包括:可用状态标识、不可用状态标识和只读状态标识。

可选的,所述资源需求,包括:资源的数目和类型。

可选的,所述可用资源包括:状态标识为所述可用状态标识的机器;

相应的,所述资源列表中包含与所述资源需求匹配、且状态标识为所述可用状态标识的各个机器。

可选的,所述资源列表查找单元203,包括:

机器遍历子单元,用于遍历所述资源集中的机器;

资源列表获取子单元,用于根据所述遍历获得的机器,计算与所述资源需求匹配的可用资源的资源列表。

可选的,按照下述规则进行所述遍历:

遍历所述资源集中状态标识为所述可用状态标识的机器,或者,遍历所述资源集中状态标识为所述不可用状态标识和所述只读状态标识之外的所有机器。

可选的,所述分布式系统中资源的调度装置,包括:

资源列表插入单元,用于将所述申请请求插入到所述资源列表中各个资源各自预设的任务队列中。

可选的,所述分布式系统中资源的调度装置,包括:

状态变更信息接收单元,用于接收所述资源集中资源的状态标识发生变更 的状态变更信息;

状态标识更新单元,用于根据所述状态变更信息,更新所述状态变更信息对应的资源的状态标识;

调度动作执行单元,用于结合所述状态变更信息对应的资源在更新前和更新后的状态标识,执行相应的调度动作。

可选的,若更新前的状态标识为所述可用状态标识、更新后的状态标识为所述不可用状态标识,相应的,所述调度动作包括:

遍历所述状态变更信息对应资源各自的任务队列;

向所述任务队列中各个申请请求对应的作业方发送停止作业的消息通知;

根据所述任务队列中申请请求的优先级高低,按照优先级从高到低的顺序依次在所述资源集中为各个申请请求调度相应的资源。

可选的,所述分布式系统中资源的调度装置,包括:

资源释放请求接收单元,用于接收所述作业方针对所述可用资源发送的资源释放请求;

资源释放通知单元,用于通知所述可用资源对应的资源节点进行资源释放。

本申请提供的另一种分布式系统中资源的调度方法实施例如下:

在上述的实施例中,提供了一种分布式系统中资源的调度方法,基于分布式系统中的资源调度方实现,与之相对应的,本申请还提供另一种分布式系统中资源的调度方法,基于分布式系统中的作业方实现,下面结合附图进行说明。

参照附图3,其示出了本申请提供的另一种分布式系统中资源的调度方法处理流程图。

由于本实施例与上述分布式系统中资源的调度方法实施例相对应,所以描述得比较简单,相关的部分请参见上述提供的方法实施例的对应说明即可。下述描述的实施例仅仅是示意性的。

本申请提供一种分布式系统中资源的调度方法,包括:

步骤s301,向资源调度方发送申请资源的申请请求;

步骤s302,接收所述资源调度方发送的、与所述申请请求中包含的所述作业方的资源需求匹配的可用资源的资源列表;

步骤s303,根据所述资源列表,将作业节点分配到所述资源列表中可用资 源的资源节点执行作业程序。

可选的,所述资源集中各个资源预设有状态标识,所述状态标识包括:可用状态标识、不可用状态标识和只读状态标识。

可选的,所述资源需求,包括:资源的数目和类型。

可选的,所述可用资源包括:状态标识为所述可用状态标识的机器;

相应的,所述资源列表中包含与所述资源需求匹配、且状态标识为所述可用状态标识的各个机器。

可选的,所述分布式系统中资源的调度方法,包括:

接收所述资源调度方发送的停止作业的消息通知;

通知所述可用资源的资源节点停止作业。

本申请提供的另一种分布式系统中资源的调度装置实施例如下:

在上述的实施例中,提供另一种分布式系统中资源的调度方法,与之相对应的,本申请还提供另一种分布式系统中资源的调度装置,下面结合附图进行说明。

参照附图4,其示出了本申请提供的另一种分布式系统中资源的调度装置实施例的示意图。

由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关的部分请参见上述提供的方法实施例的对应说明即可。下述描述的装置实施例仅仅是示意性的。

本申请提供另一种分布式系统中资源的调度装置,包括:

申请请求发送单元401,用于向资源调度方发送申请资源的申请请求;

资源列表接收单元402,用于接收所述资源调度方发送的、与所述申请请求中包含的所述作业方的资源需求匹配的可用资源的资源列表;

作业节点分配单元403,用于根据所述资源列表,将作业节点分配到所述资源列表中可用资源的资源节点执行作业程序。

可选的,所述资源集中各个资源预设有状态标识,所述状态标识包括:可用状态标识、不可用状态标识和只读状态标识。

可选的,所述资源需求,包括:资源的数目和类型。

可选的,所述可用资源包括:状态标识为所述可用状态标识的机器;

相应的,所述资源列表中包含与所述资源需求匹配、且状态标识为所述可用状态标识的各个机器。

可选的,所述分布式系统中资源的调度装置,包括:

停止作业消息通知接收单元,用于接收所述资源调度方发送的停止作业的消息通知;

停止作业执行单元,用于通知所述可用资源的资源节点停止作业。

本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

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