作业调度方法及装置与流程

文档序号:11690962阅读:199来源:国知局
作业调度方法及装置与流程

本申请属于数据处理技术领域,具体地说,涉及一种作业调度方法、装置及系统。



背景技术:

在传统的分布式系统中,分布式作业包括有限数量的任务(task),每一任务又划分为多个任务切片(instance),作业运行时,由各个任务的任务切片进行数据处理。

任务切片被调度运行在分布式系统的计算节点中,而由于计算节点软硬件配置各不相同,且运行的作业也各不相同,外界干扰因素颇多,导致不同机器运行环境大不相同,且由于作业本身的原因或者机器上运行的大量作业互相作用的结果或者机器本身问题,往往会导致某些计算节点磁盘读写慢或系统负载高等问题,使得计算节点无法正常运行。如果这个时候再调度新的作业到这些计算节点上,不仅影响作业的运行进度,也会加重系统的负载,进而影响其他作业的运行。

因此,急需提供一种有效的作业调度方式,以规避掉无法正常运行的计算节点,提高作业运行效率。



技术实现要素:

有鉴于此,本申请所要解决的技术问题是提供了一种作业调度方法及装置,有效实现了作业调度,提高了作业运行效率。

为了解决上述技术问题,本申请公开了一种作业调度方法,应用于分布式系统中,所述方法包括:

第一计算节点计算当前运行的任务切片的数据处理速率;

根据所述数据处理速率,确定所述任务切片满足调度条件时,生成调度指令发送至中心节点;所述调度指令用于触发所述中心节点中断所述任务切片的运行,并请求资源管理器重新调度所述任务切片在第二计算节点中运行;其中,所述资源管理器部署在所述分布式系统中的任一个计算节点或中心节点中。

优选地,所述根据所述数据处理速率,确定所述任务切片满足调度条件时,生成调度指令发送至中心节点包括:

根据所述数据处理速率,计算所述任务切片中未处理数据的处理时间;

在所述处理时间大于预设时间时,生成调度指令发送至中心节点。

优选地,所述预设时间为重新调度所述任务切片在第二计算节点运行的重新调度时间;

所述在所述处理时间大于预设时间时,生成调度指令发送至中心节点包括:

在所述处理时间大于所述重新调度时间时,生成调度指令发送至中心节点。

优选地,所述第一计算节点计算当前运行的任务切片的数据处理速率包括:

第一计算节点记录当前运行的任务切片在运行过程中,读数据的数据量和读数据时间,以及写数据的数据量和写数据时间;

根据所述读数据的数据量和读数据时间,以及写数据的数据量和写数据时间,计算所述任务切片的数据处理速率。

优选地,所述根据所述数据处理速率,计算所述任务切片中未处理数据的处理时间包括:

根据所述数据处理速率,计算所述任务切片中未处理数据的读数据时间以及写数据时间;

计算所述任务切片中未处理数据的读数据时间以及写数据时间的和值, 作为所述当前运行的任务切片中未处理数据的处理时间。

优选地,所述根据所述读数据的数据量和读数据时间,以及写数据的数据量和写数据时间,计算所述任务切片的数据处理速率包括:

根据所述读数据的数据量和读数据时间,以及写数据的数据量和写数据时间,按照如下计算公式计算所述任务切片的数据处理速率;

dataprocessspeed=(datasize1+datasize2)/(time1+time2);

其中,dataprocessspeed表示所述任务切片的数据处理速率;datasize1表示读数据的数据量,time1表示读数据时间;datasize2表示写数据的数据量,time2表示写数据时间。

一种作业调度方法,应用于分布式系统中,所述方法包括:

中心节点接收第一计算节点的调度指令;所述调度指令为所述第一计算节点计算当前运行的任务切片的数据处理速率;根据所述数据处理速率,确定所述任务切片满足调度条件时生成并发送的;

中断所述任务切片在所述第一计算节点中运行,

请求资源管理器重新调度所述任务切片在第二计算节点中运行。

一种作业调度方法,应用于分布式系统中,所述方法包括:

接收中心节点的调度请求;所述调度请求为所述中心节点接收第一计算节点的调度指令,中断所述任务切片在所述第一计算节点中运行之后生成的,所述调度指令为所述第一计算节点计算当前运行的任务切片的数据处理速率;根据所述数据处理速率,确定所述任务切片满足调度条件时生成并发送的;

重新调度所述任务切片在第二计算节点中运行。

一种作业调度装置,包括:

速率计算模块,用于计算当前运行的任务切片的数据处理速率;

调度请求模块,用于根据所述数据处理速率,确定所述任务切片满足调度条件时,生成调度指令发送至中心节点;所述调度指令用于触发所述中心节点中断所述任务切片的运行,并请求资源管理器重新调度所述任务切片在 第二计算节点中运行;其中,所述资源管理器部署在所述分布式系统中的任一个计算节点或中心节点中。

优选地,所述调度请求模块包括:

时间计算单元,用于根据所述数据处理速率,计算所述任务切片中未处理数据的处理时间;

调度请求单元,用于在所述处理时间大于预设时间时,生成调度指令发送至中心节点。

优选地,所述所述预设时间为重新调度所述任务切片在第二计算节点运行的重新调度时间;

所述调度请求单元具体用于在所述处理时间大于所述重新调度时间时,生成调度指令发送至中心节点。

优选地,所述速率计算模块包括:

第一计算单元,用于第一计算节点记录当前运行的任务切片在运行过程中,读数据的数据量和读数据时间,以及写数据的数据量和写数据时间;

第二计算单元,用于根据所述读数据的数据量和读数据时间,以及写数据的数据量和写数据时间,计算所述任务切片的数据处理速率。

优选地,所述时间计算单元具体用于:

根据所述数据处理速率,计算所述任务切片中未处理数据的读数据时间以及写数据时间;

计算所述任务切片中未处理数据的读数据时间以及写数据时间的和值,作为所述当前运行的任务切片中未处理数据的处理时间。

优选地,所述第二计算单元具体用于:根据所述读数据的数据量和读数据时间,以及写数据的数据量和写数据时间,按照如下计算公式计算所述任务切片的数据处理速率;

dataprocessspeed=(datasize1+datasize2)/(time1+time2);

其中,dataprocessspeed表示所述任务切片的数据处理速率;datasize1表示读数据的数据量,time1表示读数据时间;datasize2表示写数据的数据 量,time2表示写数据时间。

一种作业调度装置,包括:

指令接收模块,用于接收第一计算节点的调度指令;所述调度指令为所述第一计算节点计算当前运行的任务切片的数据处理速率;根据所述数据处理速率,确定所述任务切片满足调度条件时生成并发送的;

运行中断模块,用于中断所述任务切片在所述第一计算节点中运行,

调度触发模块,用于请求资源管理器重新调度所述任务切片在第二计算节点中运行。

一种作业调度装置,包括:

请求接收模块,用于接收中心节点的调度请求;所述调度请求为所述中心节点接收第一计算节点的调度指令,中断所述任务切片在所述第一计算节点中运行之后生成的,所述调度指令为所述第一计算节点计算当前运行的任务切片的数据处理速率;根据所述数据处理速率,确定所述任务切片满足调度条件时生成并发送的;

调度模块,用于重新调度所述任务切片在第二计算节点中运行。

与现有技术相比,本申请可以获得包括以下技术效果:

第一计算节点计算当前运行的任务切片的数据处理速率;并根据数据处理效率,确定所述任务切片满足调度条件时,生成调度指令发送至中心节点;由所述中心节点中断所述任务切片的运行,并请求资源管理器重新调度所述任务切片在第二计算节点中运行;通过计算节点计算任务切片的数据处理速率,获得计算节点的实际运行情况,可以及时发现无法正常运行的计算节点,从而可以有效实现作业调度,以规避掉无法正常运行的计算节点,提高作业运行效率。

当然,实施本申请的任一产品必不一定需要同时达到以上所述的所有技术效果。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部 分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是本申请实施例的一种作业调度方法一个实施例的流程图;

图2是本申请实施例的一种作业调度方法又一个实施例的流程图;

图3是本申请实施例的一种作业调度方法又一个实施例的流程图;

图4是本申请实施例的一种作业调度方法又一个实施例的流程图;

图5是本申请实施例的一种作业调度装置一个实施例的结构示意图;

图6是本申请实施例的一种作业调度装置又一个实施例的结构示意图;

图7是本申请实施例的一种作业调度装置又一个实施例的结构示意图;

图8是本申请实施例的一种作业调度装置又一个实施例的结构示意图;

图9是本申请实施例的一种分布式系统一个实施例的结构示意图。

具体实施方式

以下将配合附图及实施例来详细说明本申请的实施方式,藉此对本申请如何应用技术手段来解决技术问题并达成技术功效的实现过程能充分理解并据以实施。

本申请技术方案主要应用于分布式系统中,分布式系统包括中心节点以及与中心节点连接的各个计算节点。

而分布式作业包括有限数量的任务,并且任务之间有一定的依赖关系,每一任务又划分为多个任务切片,作业运行时,由各个任务的任务切片进行数据处理。任务切片被调度运行在分布式系统的计算节点中,

任务切片的调度运行由资源管理器进行控制,资源管理器可以部署在所述分布式系统中的任一个计算节点或中心节点中。

现有技术中,资源管理器虽然可以对任务切片进行调度分配,但是资源管理器是统一进行运行资源和任务切片的调度,主要根据计算节点的运行资源以及运行任务切片数量来决定是否分配任务切片。

而由于每个任务切片所需要的运行资源不同,资源管理器很难做到运行 资源和任务调度的双均衡,所以可能导致计算节点上调度了较少的资源却运行较多的任务,大量任务的运行会引起系统负载变高,导致运行效率变慢,使得计算计算节点无法正常运行,且计算节点无法正常运行可能有多种原因,比如机器的软硬件配置、机器年久老化导致硬件出现问题等,资源管理器仅根据计算节点的运行资源和运行的任务切片进行作业调度,无法有效实现对作业的调度以保证作业运行效率。

为了解决这一技术问题,发明人经过一系列研究,提出本申请技术方案,在本申请实施例中,每一个任务切片在运行过程中,可以统计数据处理速率,并根据该数据处理处理效率,确定任务切片满足调度条件时,此时表明当前运行该任务切片的计算节点可能负载较高或者出现其他问题,会影响作业运行效率,因此需要重新调度该任务切片,即可以通知中心节点,由中心节点中断该任务切片的运行,并请求资源管理器重新调度。而任务切片不满足调度条件,则该任务切片可以继续运行。通过计算任务切片的数据处理速率,获得计算节点的实际运行情况,从而可以及时发现无法正常运行的计算节点,从而可以有效实现作业调度,以规避掉无法正常运行的计算节点,提高作业运行效率。

下面将结合附图对本申请技术方案进行详细描述。

图1为本申请提供的一种作业调度方法一个实施例的流程图,该方法主要应用于分布式系统中,该方法可以包括以下几个步骤:

101:第一计算节点计算当前运行的任务切片的数据处理速率。

第一计算节点是指分布式系统中运行任务切片的任一个计算节点,为了方便描述上的区分,此处命名为第一计算节点。

任务切片被调度到第一计算节点中运行,第一计算节点在一个进程中运行该任务切片,具体通过该进程计算任务切片的数据处理速率

第一计算节点在运行任务切片时,需要读数据、进行数据处理之后,在进行写数据,因此可以根据读数据以及写数据的数据量和时间,计算数据处理速率。

计算数据处理速率可以实时进行,从而可以实时对第一计算节点进行判断。

102:根据所述数据处理速率,确定所述任务切片满足调度条件时,生成调度指令发送至中心节点。

其中,所述调度指令用于触发所述中心节点中断所述任务切片的运行,并请求资源管理器重新调度所述任务切片在第二计算节点中运行;其中,所述资源管理器部署在所述分布式系统中的任一个计算节点或中心节点中。

其中,作为一种可能的实现方式,所述调度条件可以是指所述数据处理速率小于预设速率。

所述根据所述数据处理速率,确定所述任务切片满足调度条件时,生成调度指令发送至中心节点可以是:

根据所述数据处理速率,在所述数据处理速率小于预设速率时,生成调度指令发送至中心节点。

也即数据处理速率较低时,表明该第一计算节点可能负载较高,需要对任务切片进行重新调度。

作为又一种可能的实现方式,该调度条件可以是指未处理数据的处理时间大于预设时间。

因此所述根据所述数据处理速率,确定所述任务切片满足调度条件时,生成调度指令发送至中心节点可以是:

根据所述数据处理速率,计算所述任务切片中未处理数据的处理时间;

在所述处理时间大于预设时间时,生成调度指令发送至中心节点。

根据计算获得的数据处理速率,以及未处理数据的数据量,即可以计算获得未处理数据的处理时间。

该处理时间也是指计算节点处于该任务切片该需要运行的时间。

如果处理时间大于预设时间,表明第一计算节点可能负载较高或者出现其他影响正常运行的问题,此时应该重新调度该任务切片,而不是在第一计算节点中继续运行,以保证作业运行效率,因此即可以生成调度指令发送至 中心节点。中心节点即中断所述任务切片在第一计算节点中运行,并请求资源管理器重新调度所述任务切片在第二计算节点中运行。

该第二计算节点可以是资源管理器选择的负载较低的一个计算节点。资源管理器可以根据各个计算节点的数据处理速率或者各个计算节点中未处理数据的处理时间,选择数据处理速率高或者未处理数据的处理时间短的一个计算节点作为第二计算节点。

当然,资源管理器还可以选择存在空闲运行资源的任一个计算节点作为第二计算节点。

另外,中心节点还可以对该第一计算节点进行禁用标记,终止对禁用标记的计算节点进行调度。

第一计算节点中的任务切片中断之后,可以降低该第一计算节点的负载,从而有利于运行在该第一计算节点中的其它任务切片的运行,保持良好的运行状态。

本实施例中,第一计算节点对当前运行的任务切片计算数据处理速率,根据获得的数据处理速率可以进行判断,如果任务切片满足调度调度条件,即可以即可以通知中心节点,由中心节点中断该任务切片的运行,并请求资源管理器重新调度。而如果处理时间小于预设时间,则该任务切片可以继续运行。通过计算任务切片的数据处理速率,获得计算节点的实际运行情况,可以及时发现无法正常运行的计算节点,从而可以有效实现作业调度,以规避掉无法正常运行的计算节点,提高作业运行效率。

图2为本申请提供的一种作业调度方法又一个实施例的流程图,该方法主要应用于分布式系统中,该方法可以包括以下几个步骤:

201:第一计算节点计算当前运行的任务切片的数据处理速率。

任务切片运行时,需要读数据,并对读取的数据进行处理之后,在进行写数据。

因此根据读数据和写数据的数据量以及读数据时间和写数据时间,即可以计算获得所述任务切片中未处理数据的处理时间。

因此,作为又一个实施例,该步骤201可以包括:

第一计算节点记录当前运行的任务切片在运行过程中,读数据的数据量和读数据时间,以及写数据的数据量和写数据时间;

根据所述读数据的数据量和读数据时间,以及写数据的数据量和写数据时间,计算所述任务切片的数据处理速率。

其中,读数据时间是指读取所述读数据的数据量所需的时间,写数据时间是指写入所述写数据的数据量所需的时间。

具体的,根据所述读数据的数据量和读数据时间,以及写数据的数据量和写数据时间,可以按照如下计算公式计算所述任务切片的数据处理速率;

dataprocessspeed=(datasize1+datasize2)/(time1+time2);

其中,dataprocessspeed表示所述任务切片的数据处理速率;datasize1表示读数据的数据量,time1表示读数据时间;datasize2表示写数据的数据量,time2表示写数据时间。

202:根据所述数据处理速率,计算所述任务切片中未处理数据的处理时间。

未处理数据需要分别进行读写操作,因此作为又一个实施例,该步骤202可以包括:

根据所述数据处理速率,计算所述任务切片中未处理数据的读数据时间以及写数据时间;

计算所述任务切片中未处理数据的读数据时间以及写数据时间的和值,作为所述当前运行的任务切片中未处理数据的处理时间。

具体的该未处理数据的处理时间可以按照如下公式计算获得:

timeleft=(datatotalsize–datasize1+datatotalsize–datasize2)/dataprocessspeed;

其中,timeleft表示未处理数据的处理时间,datatotalsize为任务切片的总数据量。

(datatotalsize–datasize1)/dataprocessspeed也即为未处理数据的 读数据时间,(datatotalsize–datasize2)/dataprocessspeed也即为未处理数据的写数据时间。

203:判断所述处理时间是否大于预设时间,如果是,执行步骤204,如果否,则可以返回步骤201继续进行计算。

该预设时间可以根据实际情况进行设定。

作为又一个实施例,该预设时间可以是指任务切片重新调度至第二计算节点中的重新调度时间。

因此如果处理时间大于重新调度时间,则生成调度指令,对任务切片重新进行调度即可。

而如果处理时间小于重新调度时间,则可以在第一计算节点中继续运行该任务切片,以保证较高的作业运行效率。

204:生成调度指令发送至中心节点。

所述调度指令用于触发所述中心节点中断所述任务切片的运行,并请求资源管理器重新调度所述任务切片在第二计算节点中运行;其中,所述资源管理器部署在所述分布式系统中的任一个计算节点或中心节点中。

中心节点接收到调度指令,中断所述任务切片的运行的同时,可以生成调度请求并发送至资源管理器。由资源管理器接收到调度请求时,重新调度所述任务切片在第二计算节点中运行。

本实施例中,第一计算节点对当前运行的任务切片计算数据处理速率,根据获得的数据处理速率可以计算未处理数据的处理时间,并对处理时间进行判断,如果处理时间大于预设时间,即可以通知中心节点,由中心节点中断该任务切片的运行,并请求资源管理器重新调度。而如果处理时间小于预设时间,则该任务切片可以继续运行。通过计算任务切片的数据处理速率和处理时间,获得计算节点的实际运行情况,可以及时发现无法正常运行的计算节点,从而可以有效实现作业调度,以规避掉无法正常运行的计算节点,提高作业运行效率。

图3为本申请提供的一种作业调度方法又一个实施例的流程图,该方法 主要应用于分布式系统中,该方法可以包括以下几个步骤:

301:中心节点接收第一计算节点的调度指令。

其中,所述调度指令为所述第一计算节点计算当前运行的任务切片的数据处理速率;根据所述数据处理速率,确定所述任务切片满足调度条件时生成并发送的。

根据所述数据处理速率,确定所述任务切片满足调度条件可以有多种实现方式,具体可以参见上述实施例中所述,在此不再赘述。

302:中断所述任务切片在所述第一计算节点中运行。

303:请求资源管理器重新调度所述任务切片在第二计算节点中运行。

中心节点接收到该调度指令之后,即中断任务切片的运行,并告知资源管理器,请求请求资源管理器重新调度所述任务切片在第二计算节点中运行。

中心节点接收到调度指令,中断所述任务切片的运行的同时,可以生成调度请求并发送至资源管理器。由资源管理器接收到调度请求时,重新调度所述任务切片在第二计算节点中运行。

从而可以及时发现无法正常运行的计算节点,从而可以有效实现作业调度,以规避掉无法正常运行的计算节点,提高作业运行效率。

图4为本申请提供的一种作业调度方法又一个实施例的流程图,该方法主要应用于分布式系统中的资源管理器中,该方法可以包括以下几个步骤:

401:接收中心节点的调度请求。

其中,所述调度请求为所述中心节点接收第一计算节点的调度指令,中断所述任务切片在所述第一计算节点中运行之后生成的。

所述调度指令为所述第一计算节点计算当前运行的任务切片的数据处理速率;根据所述数据处理速率,确定所述任务切片满足调度条件时生成并发送的。

根据所述数据处理速率,确定所述任务切片满足调度条件可以有多种实 现方式,具体可以参见上述实施例中所述,在此不再赘述。

402:重新调度所述任务切片在第二计算节点中运行。

作为又一个实施例,资源管理器还可以终止调度所述第一计算节点;可以将第一计算节点设置禁用标记,使得携带禁用标记的计算节点不再调度任务切片运行。

其中,该第二计算节点可以是资源管理器选择的负载较低的一个计算节点。资源管理器可以根据各个计算节点的数据处理速率或者各个计算节点中未处理数据的处理时间,选择数据处理速率高或者未处理数据的处理时间短的一个计算节点作为第二计算节点。

当然,资源管理器还可以选择存在空闲运行资源的任一个计算节点作为第二计算节点。

本实施例中,第一计算节点对当前运行的任务切片计算数据处理速率,根据获得的数据处理速率可以进行判断,如果任务切片满足调度调度条件,即可以即可以通知中心节点,由中心节点中断该任务切片的运行,并请求资源管理器重新调度。通过计算任务切片的数据处理速率,获得计算节点的实际运行情况,可以及时发现无法正常运行的计算节点,从而可以有效实现作业调度,以规避掉无法正常运行的计算节点,提高作业运行效率。

图5为本申请提供的一种作业调度装置一个实施例的结构示意图,该装置可以配置在分布式系统的任一个计算节点中,该装置可以包括:

速率计算模块501,用于计算当前运行的任务切片的数据处理速率;

调度请求模块502,用于根据所述数据处理速率,确定所述任务切片满足调度条件时,生成调度指令发送至中心节点;所述调度指令用于触发所述中心节点中断所述任务切片的运行,并请求资源管理器重新调度所述任务切片在第二计算节点中运行。

该第二计算节点可以是资源管理器选择的负载较低的一个计算节点。资源管理器可以根据各个计算节点的数据处理速率或者各个计算节点中未处理数据的处理时间,选择数据处理速率高或者未处理数据的处理时间短的一 个计算节点作为第二计算节点。

当然,资源管理器还可以选择存在空闲运行资源的任一个计算节点作为第二计算节点。

其中,所述资源管理器部署在所述分布式系统中的任一个计算节点或中心节点中。

作为一种可能的实现方式,所述调度条件可以是指所述数据处理速率小于预设速率,该调度请求模块502可以具体用于根据所述数据处理速率,在所述数据处理速率小于预设速率时,生成调度指令发送至中心节点。

也即数据处理速率较低时,表明该第一计算节点可能负载较高,需要对任务切片进行重新调度。

作为又一种可能的实现方式,该调度条件可以是指未处理数据的处理时间大于预设时间。

因此,作为又一个实施例,如图6中所示,与图5所示实施例不同之处在于,所述调度请求模块503可以额包括:

时间计算单元601,用于根据所述数据处理速率,计算所述任务切片中未处理数据的处理时间;

调度请求单元602,用于在所述处理时间大于预设时间时,生成调度指令发送至中心节点。

如果处理时间大于预设时间,表明第一计算节点可能负载较高,此时应该重新调度该任务切片,而不是在第一计算节点中继续运行,以保证作业运行效率,因此即可以生成调度指令发送至中心节点。中心节点即中断所述任务切片在第一计算节点中运行,并请求资源管理器重新调度所述任务切片在第二计算节点中运行。

该预设时间可以根据实际情况进行设定。

作为又一个实施例,该预设时间可以是指任务切片重新调度至第二计算节点中的重新调度时间。

因此调度请求单元可以具体用于在所述处理时间大于重新调度时间,则生成调度指令,对任务切片重新进行调度即可。

而如果处理时间小于重新调度时间,则可以在第一计算节点中继续运行该任务切片,以保证较高的作业运行效率。

其中,任务切片运行时,需要读数据,并对读取的数据进行处理之后,在进行写数据。

因此根据读数据和写数据的数据量以及读数据时间和写数据时间,即可以计算获得所述任务切片中未处理数据的处理时间。

因此,作为又一个实施例,所述速率计算模块可以包括:

第一计算单元,用于记录当前运行的任务切片在运行过程中,读数据的数据量和读数据时间,以及写数据的数据量和写数据时间;

第二计算单元,用于根据所述读数据的数据量和读数据时间,以及写数据的数据量和写数据时间,计算所述任务切片的数据处理速率。

通过记录当前运行的任务切片在运行过程中,读数据的数据量和读数据时间,以及写数据的数据量和写数据时间;

根据所述读数据的数据量和读数据时间,以及写数据的数据量和写数据时间,计算所述任务切片的数据处理速率。

其中,读数据时间是指读取所述读数据的数据量所需的时间,写数据时间是指写入所述写数据的数据量所需的时间。

具体的,所述第二计算单元可以具体根据所述读数据的数据量和读数据时间,以及写数据的数据量和写数据时间,可以按照如下计算公式计算所述任务切片的数据处理速率;

dataprocessspeed=(datasize1+datasize2)/(time1+time2);

其中,dataprocessspeed表示所述任务切片的数据处理速率;datasize1表示读数据的数据量,time1表示读数据时间;datasize2表示写数据的数据量,time2表示写数据时间。

其中,未处理数据需要分别进行读写操作,因此作为又一个实施例,所 述时间计算单元可以具体用于:

根据所述数据处理速率,计算所述任务切片中未处理数据的读数据时间以及写数据时间;

计算所述任务切片中未处理数据的读数据时间以及写数据时间的和值,作为所述当前运行的任务切片中未处理数据的处理时间。

具体的,可以按照如下公式计算获得该未处理数据的处理时间:

timeleft=(datatotalsize–datasize1+datatotalsize–datasize2)/dataprocessspeed;

其中,timeleft表示未处理数据的处理时间,datatotalsize为任务切片的总数据量。

(datatotalsize–datasize1)/dataprocessspeed也即为未处理数据的读数据时间,(datatotalsize–datasize2)/dataprocessspeed也即为未处理数据的写数据时间。

本申请实施例中,第一计算节点对当前运行的任务切片计算数据处理速率,根据获得的数据处理速率可以计算未处理数据的处理时间,并对处理时间进行判断,如果处理时间大于预设时间,即可以通知中心节点,由中心节点中断该任务切片的运行,并请求资源管理器重新调度。而如果处理时间小于预设时间,则该任务切片可以继续运行。通过计算任务切片的数据处理速率和处理时间,获得计算节点的实际运行情况,可以及时发现无法正常运行的计算节点,从而可以有效实现作业调度,以规避掉无法正常运行的计算节点,提高作业运行效率。

图7为本申请提供的一种作业调度装置又一个实施例的结构示意图,该装置具体配置在分布式系统中的中心节点中,该装置可以包括:

指令接收模块701,用于接收第一计算节点的调度指令。

其中,所述调度指令为所述第一计算节点计算当前运行的任务切片的数据处理速率;根据所述数据处理速率,确定所述任务切片满足调度条件时生成并发送的。

根据所述数据处理速率,确定所述任务切片满足调度条件可以有多种实现方式,具体可以参见上述实施例中所述,在此不再赘述。

运行中断模块702,用于中断所述任务切片在所述第一计算节点中运行。

调度触发模块703,用于请求资源管理器重新调度所述任务切片在第二计算节点中运行。

接收到该调度指令之后,即中断任务切片的运行,并告知资源管理器,请求请求资源管理器重新调度所述任务切片在第二计算节点中运行。

从而可以及时发现无法正常运行的计算节点,从而可以有效实现作业调度,以规避掉无法正常运行的计算节点,提高作业运行效率。

图8为本申请提供的一种作业调度装置又一个实施例的结构示意图,该装置在实际应用中配置为资源管理器,部署在分布式系统中的中心节点或者任一计算节点中,该装置可以包括:

请求接收模块801,用于接收中心节点的调度请求。

其中,所述调度请求为所述中心节点接收第一计算节点的调度指令,中断所述任务切片在所述第一计算节点中运行之后生成的。

所述调度指令为所述第一计算节点计算当前运行的任务切片的数据处理速率;根据所述数据处理速率,确定所述任务切片满足调度条件时生成并发送的。

调度模块802,用于重新调度所述任务切片在第二计算节点中运行。

作为又一个实施例,还可以将第一计算节点设置禁用标记,使得携带禁用标记的计算节点不再调度任务切片运行。

其中,该第二计算节点可以是选择的负载较低的一个计算节点。可以根据各个计算节点的数据处理速率或者各个计算节点中未处理数据的处理时间,选择数据处理速率高或者未处理数据的处理时间短的一个计算节点作为第二计算节点。

当然,还可以选择存在空闲运行资源的任一个计算节点作为第二计算节 点。

本实施例中,接收到中心节点的调度请求之后,重新调度所述任务切片在第二计算节点中运行。第一计算节点对当前运行的任务切片计算数据处理速率,根据获得的数据处理速率可以进行判断,如果任务切片满足调度调度条件,即可以生成调度指令通知中心节点,由中心节点中断该任务切片的运行,并生成调度请求。通过计算任务切片的数据处理速率,获得计算节点的实际运行情况,可以及时发现无法正常运行的计算节点,从而可以有效实现作业调度,以规避掉无法正常运行的计算节点,提高作业运行效率。

此外,本申请还提供了一种分布式系统,如图9所示,该分布式系统可以包括中心节点901以及多个计算节点902,在所述中心节点901或者任一个计算节点902中部署资源管理器903,图9中以资源管理器部署在任一个计算节点中为例进行说明,但是该资源管理器还可以部署在中心节点中。

所述多个计算节点中的第一计算节点,计算当前运行的任务切片的数据处理速率;根据所述数据处理速率,确定所述任务切片满足调度条件时,生成调度指令发送至中心节点;

所述中心节点接收到所述调度指令之后,中断所述任务切片的运行,并请求资源管理器重新调度所述任务切片在第二计算节点中运行。

通过本申请技术方案,有效实现了作业调度,保证了作业运行效率。

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

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

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

如在说明书及权利要求当中使用了某些词汇来指称特定组件。本领域技术人员应可理解,硬件制造商可能会用不同名词来称呼同一个组件。本说明书及权利要求并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。如在通篇说明书及权利要求当中所提及的“包含”为一开放式用语,故应解释成“包含但不限定于”。“大致”是指在可接收的误差范围内,本领域技术人员能够在一定误差范围内解决所述技术问题,基本达到所述技术效果。此外,“耦接”一词在此包含任何直接及间接的电性耦接手段。因此,若文中描述一第一装置耦接于一第二装置,则代表所述第一装置可直接电性耦接于所述第二装置,或通过其他装置或耦接手段间接地电性耦接至所述第二装置。说明书后续描述为实施本申请的较佳实施方式,然所述描述乃以说明本申请的一般原则为目的,并非用以限定本申请的范围。本申请的保护范围当视所附权利要求所界定者为准。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。

上述说明示出并描述了本申请的若干优选实施例,但如前所述,应当理解本申请并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述申请构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本申请的精神和范围,则都应在本申请所附权利要求的保护范围内。

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