任务调度方法和电子设备与流程

文档序号:11829114阅读:184来源:国知局
任务调度方法和电子设备与流程

本申请涉及任务调度方法和电子设备。



背景技术:

MapReduce在设计之初是运行在物理机集群上,考虑到物理机的不可靠性,MapReduce在任务调度过程中进行了很多容错性的设计。而目前很多MapReduce应用都运行在虚拟化平台上,虚拟化平台与传统的物理机集群相比,可以提供更好的可靠性保障。针对这种情况MapReduce原有的任务调度方法就需要进行相应的改进。

为此,期望提供一种任务调度方法和电子设备,其能够针对虚拟化计算平台更好地调度任务。



技术实现要素:

根据本发明实施例,提供了一种任务调度方法,应用于虚拟化计算集群系统,所述方法包括:

接收要处理的任务,并将所述任务分解为多个任务分片;

将所述多个任务分片分配给所述虚拟化计算集群中的相应虚拟化计算节点,由相应虚拟化计算节点对分配的任务执行计算操作;

从相应虚拟化计算节点接收定时返回的指示信号,所述指示信号指示所述计算节点是否正常操作;

当没有从特定虚拟化计算节点接收到指示信号时,确定该特定虚拟化计算节点为故障节点,并确定是否满足预定条件;

当满足预定条件时,等待该特定虚拟化计算节点恢复以继续执行已分配的任务分片的计算操作。

优选地,确定是否满足预定条件还包括:

估计重新执行已分配给该特定虚拟化计算节点的第一任务分片所需的计算时间;

将估计的计算时间与预先设置的虚拟化计算节点的恢复时间比较;

如果估计的计算时间大于所述恢复时间,则确定满足预定条件。

优选地,估计重新执行已分配给该特定虚拟化计算节点的任务分片所需的计算时间还包括:

获取分配给该特定虚拟化计算节点的任务分片的未完成部分的信息;

根据获取的未完成部分的信息估计重新执行该任务分片的未完成部分所需的计算时间。

优选地,所述方法还包括:

当不满足预定条件时,将已分配给该特定虚拟化计算节点的任务分片中的未完成部分分配给其它虚拟化计算节点。

优选地,所述方法还包括:

按照距离顺序,从近到远将已分配给该特定虚拟化计算节点的任务分片中的未完成部分分配给其它虚拟化计算节点。

优选地,所述方法还包括:

接收从执行计算操作的相应虚拟化计算节点的每个返回的任务分片的处理结果;以及

会聚所有的处理结果以生成要输出的处理结果。

根据本发明另一实施例,提供了一种电子设备,包括:

任务分解模块,配置为接收要处理的任务,并将所述任务分解为多个任务分片;

任务分配模块,配置为将所述多个任务分片分配给虚拟化计算集群中的相应虚拟化计算节点,由相应虚拟化计算节点对分配的任务执行计算操作;

控制模块,配置为从相应虚拟化计算节点接收定时返回的指示信号,所述指示信号指示所述计算节点是否正常操作,

其中,当没有从特定虚拟化计算节点接收到指示信号时,所述控制模块确定该特定虚拟化计算节点为故障节点,并确定是否满足预定条件;以及

当满足预定条件时,所述控制模块等待该特定虚拟化计算节点恢复以继续执行已分配的任务分片的计算操作。

优选地,所述控制模块进一步配置为:

估计重新执行已分配给该特定虚拟化计算节点的第一任务分片所需的计算时间;

将估计的计算时间与预先设置的虚拟化计算节点的恢复时间比较;

如果估计的计算时间大于所述恢复时间,则确定满足预定条件。

优选地,所述控制模块进一步配置为:

获取分配给该特定虚拟化计算节点的任务分片的未完成部分的信息;

根据获取的未完成部分的信息估计重新执行该任务分片的未完成部分所需的计算时间。

优选地,所述任务分配模块进一步配置为

当不满足预定条件时,将已分配给该特定虚拟化计算节点的任务分片中的未完成部分分配给其它虚拟化计算节点。

优选地,所述任务分配模块进一步配置为:

按照距离顺序,从近到远将已分配给该特定虚拟化计算节点的任务分片中的未完成部分分配给其它虚拟化计算节点。

优选地,所述控制模块进一步配置为

接收从执行计算操作的相应虚拟化计算节点的每个返回的任务分片的处理结果;以及

会聚所有的处理结果以生成要输出的处理结果。

因此,根据本发明实施例的任务调度方法和电子设备,能够针对虚拟化计算平台更好地调度任务。

附图说明

图1是图示根据本发明第一实施例的任务调度方法的流程图;

图2是图示根据本发明第二实施例的任务调度方法的流程图;以及

图3是图示根据本发明第三实施例的电子设备的功能配置框图。

具体实施方式

下面,将参考附图详细描述根据本发明实施例的任务调度方法和电子设备。

<第一实施例>

下面,将参考图1详细描述根据本发明第一实施例的任务调度方法。

根据本发明实施例任务调度方法应用于虚拟化计算集群系统。

所述方法100包括:

步骤S101:接收要处理的任务,并将所述任务分解为多个任务分片;

步骤S102:将所述多个任务分片分配给所述虚拟化计算集群中的相应虚拟化计算节点,由相应虚拟化计算节点对分配的任务执行计算操作;

步骤S103:接收定时返回的指示信号,所述指示信号指示所述计算节点是否正常操作;

步骤S104:当没有从特定虚拟化计算节点接收到指示信号时,确定该特定虚拟化计算节点为故障节点,并确定是否满足预定条件;

步骤S105:当满足预定条件时,等待该特定虚拟化计算节点恢复以继续执行已分配的任务分片的计算操作。

具体地,在步骤S101中,例如通过任务管理节点(JobTracker)接收要处理的任务(Job),然后,将所述任务分解为多个任务分片(Task)。例如,接收要处理的大数据块,将该大数据块划分为多个小数据块,也就是说,每个任务分片对应于一个小数据块。

然后,在步骤S102中,将所述多个任务分片分配给所述虚拟化计算集群中的相应虚拟化计算节点(TaskTracker),由相应虚拟化计算节点对分配的任务执行计算操作(即,Mpa/Reduce任务)。

具体地,虚拟化计算集群包括多个分散的虚拟化计算节点(即,虚拟机)。在步骤S102中,将在步骤S101中划分得到的每个任务分片分配给虚拟化计算集群中的一个虚拟化计算节点,由相应的虚拟化计算节点对分配的任务执行计算操作。需要注意的是,分配任务分片的可以是虚拟化计算集群中的任一虚拟化计算节点。

然后,在步骤S103中,接收从相应虚拟化计算节点定时返回的指示信号,所述指示信号指示所述计算节点是否正常操作。

例如,执行计算操作的虚拟化计算节点定时向分配任务的虚拟化计算节点发送心跳信号。该心跳信号指示该执行计算操作的虚拟化计算节点操作正常。

然后,在步骤S104中,当没有从特定虚拟化计算节点接收到指示信号时, 确定该特定虚拟化计算节点为故障节点。也就是说,如果没有从特定虚拟化计算节点收到心跳信号,则可以确定该特定虚拟化节点当前失效,即,没有了心跳。然后,确定该虚拟化计算节点是否满足预定条件。

然后,在步骤S105中,当满足预定条件时,等待该特定虚拟化计算节点恢复以继续执行已分配的任务分片的计算操作。

因为当在虚拟化计算集群系统上运行时,虚拟机能够在很短的时间内完全恢复至宕机前的状态(包括内存和网络上的数据),此时虚拟机中之前运行的所有Task可以继续执行,而不需要在其它机器上重新执行。

也就是说,与现有技术的方案不同,当确定执行计算认为的虚拟化计算节点出现故障时,不是立即删除分配给该计算节点的任务,而是先判断是否满足预定条件,并且当满足预定条件时,不删除分配给该计算节点的任务。相反,当满足预定条件时,等待该特定虚拟化计算节点恢复以继续执行已分配的任务分片的计算操作。

因此,根据本发明实施例的任务调度方法,在执行计算任务的虚拟化计算节点出现故障时,能够根据自身状态判断满足预定,判断等待该计算节点重启而不是将计算任务分配给其它节点,从而能够针对虚拟化计算平台更好地调度任务,大大地提高计算效率。

<第二实施例>

下面,将参考图2详细描述根据本发明第二实施例的任务调度方法。

所述方法200包括:

步骤S201:接收要处理的任务,并将所述任务分解为多个任务分片;

步骤S202:将所述多个任务分片分配给所述虚拟化计算集群中的相应虚拟化计算节点,由相应虚拟化计算节点对分配的任务执行计算操作;

步骤S203:接收定时返回的指示信号,所述指示信号指示所述计算节点是否正常操作;

步骤S204:当没有从特定虚拟化计算节点接收到指示信号时,确定该特定虚拟化计算节点为故障节点;

步骤S205:估计重新执行已分配给该特定虚拟化计算节点的第一任务分片所需的计算时间,将估计的计算时间与预先设置的虚拟化计算节点的恢复时间比较;

步骤S206:当估计的计算时间大于所述恢复时间时,等待该特定虚拟化计算节点恢复以继续执行已分配的任务分片的计算操作。

具体地,在步骤S201中,接收要处理的任务(Job),然后,将所述任务分解为多个任务分片(Task)。例如,接收要处理的大数据块,将该大数据块划分为多个小数据块,也就是说,每个任务分片对应于一个小数据块。

然后,在步骤S202中,将所述多个任务分片分配给所述虚拟化计算集群中的相应虚拟化计算节点,由相应虚拟化计算节点对分配的任务执行计算操作。

具体地,虚拟化计算集群包括多个分散的虚拟化计算节点(即,虚拟机)。在步骤S202中,将在步骤S201中划分得到的每个任务分片分配给虚拟化计算集群中的一个虚拟化计算节点,由相应的虚拟化计算节点对分配的任务执行计算操作。需要注意的是,分配任务分片的可以是虚拟化计算集群中的任一虚拟化计算节点。

然后,在步骤S203中,接收从相应虚拟化计算节点定时返回的指示信号,所述指示信号指示所述计算节点是否正常操作。

例如,执行计算操作的虚拟化计算节点定时向分配任务的虚拟化计算节点发送心跳信号。该心跳信号指示该执行计算操作的虚拟化计算节点操作正常。

然后,在步骤S204中,当没有从特定虚拟化计算节点接收到指示信号时,确定该特定虚拟化计算节点为故障节点。也就是说,如果没有从特定虚拟化计算节点收到心跳信号,则可以确定该特定虚拟化节点当前失效,即,没有了心跳。

然后,在步骤S205中,估计重新执行已分配给该特定虚拟化计算节点的第一任务分片所需的计算时间,将估计的计算时间与预先设置的虚拟化计算节点的恢复时间比较。

具体地,在一个实施例中,确定是否满足预定条件还包括:

估计重新执行已分配给该特定虚拟化计算节点的第一任务分片所需的计算时间;将估计的计算时间与预先设置的虚拟化计算节点的恢复时间比较;如果估计的计算时间大于所述恢复时间,则确定满足预定条件。

也就是说,首先估计重新执行已分配给该特定虚拟化计算节点的第一任务分片所需的计算时间,例如,假设由另一虚拟化计算计算节点重新执行该 第一任务分片所需的计算时间为5分钟。

然后,读取预先设置的虚拟化计算节点的恢复时间,例如,假设每个虚拟化计算节点的恢复时间设置为1分钟。将估计的计算时间与预先设置的虚拟化计算节点的恢复时间比较,可以确定估计的计算时间(5分钟)大于恢复时间(1分钟)。此时,可以确定满足该预定条件。

然后,在步骤S206中,当估计的计算时间大于所述恢复时间时,等待该特定虚拟化计算节点恢复以继续执行已分配的任务分片的计算操作。

也就是说,与现有技术的方案不同,当确定执行计算任务的虚拟化计算节点出现故障时,不是立即删除分配给该计算节点的任务,而是先判断是否满足预定条件,并且当满足预定条件时,不删除分配给该计算节点的任务。相反,当满足预定条件时,等待该特定虚拟化计算节点恢复以继续执行已分配的任务分片的计算操作。

另一方面,当不满足预定条件时,也就是说,当估计的计算时间小于所述恢复时间时,可以将已分配给该特定虚拟化计算节点的任务分片中的未完成部分分配给其它虚拟化计算节点。

在一个实施例中,估计重新执行已分配给该特定虚拟化计算节点的任务分片所需的计算时间还包括:

获取分配给该特定虚拟化计算节点的任务分片的未完成部分的信息;

根据获取的未完成部分的信息估计重新执行该任务分片的未完成部分所需的计算时间。

也就是说,在估计重新执行已分配给该特定虚拟化计算节点的第一任务分片所需的计算时间时,不需要估计重新执行全部的第一任务分片所需的时间,而是可以先获取分配给该特定虚拟化计算节点的任务分片的未完成部分的信息。

例如,根据虚拟化计算系统中缓存的该虚拟化计算节点已经完成的任务分片的程度(例如,40%),可以确定未完成部分为60%。

然后,根据获取的未完成部分的信息估计重新执行该任务分片的未完成部分所需的计算时间。即,确定完成该未完成部分的计算所需的时间为5分钟*60%,为3分钟。

因此,通过估计重新执行该任务分片的未完成部分所需的计算时间,可以更精确地确定是等待该计算节点恢复还是将该第一任务分片分配给其它计 算节点。在该实施例中,因为完成剩余部分所需的时间为3分钟,仍然大于重新启动该计算节点所需的时间,即,1分钟。

因此,继续等待该计算节点恢复。

另一方面,虚拟化管理平台在检测到特定虚拟化计算节点出现故障时,可以迁移该特定虚拟化计算节点的状态和数据,并且开始恢复该虚拟化计算节点。

等到该虚拟化计算节点恢复成功之后,可以将出现故障时的该特定虚拟化计算节点的状态和数据迁移回来,并且使得该虚拟化计算节点从出现故障时的状态继续开始执行计算,并且向主节点发送心跳信号。

主节点在收到心跳信号之后,重新确定该计算节点为正常状态。

在一个实施例中,所述方法还包括:

按照距离顺序,从近到远将已分配给该特定虚拟化计算节点的任务分片中的未完成部分分配给其它虚拟化计算节点。

具体地,在将任务分片的未完成部分分配给其它虚拟化计算节点时,按照从后向前的顺序,将该任务分片的未完成部分分配给其它虚拟化计算节点。

在一个实施例中,所述方法还包括:

接收从执行计算操作的相应虚拟化计算节点的每个返回的任务分片的处理结果;以及

会聚所有的处理结果以生成要输出的处理结果。

也就是说,每个虚拟化计算节点在完成计算任务之后,将自己的计算结果返回给分配任务的主节点,然后由主节点会聚所有的处理结果以生成要输出的处理结果,即,针对分配的任务的计算结果。

因此,根据本发明实施例的任务调度方法,在执行计算任务的虚拟化计算节点出现故障时,能够根据自身状态判断是等待该计算节点重启或将计算任务分配给其它节点,从而能够针对虚拟化计算平台更好地调度任务,大大地提高计算效率。

<第三实施例>

下面,将参考图3描述根据本发明第三实施例的电子设备。

根据本发明第三实施例的电子设备300包括:

任务分解模块301,配置为接收要处理的任务,并将所述任务分解为多 个任务分片;

任务分配模块302,配置为将所述多个任务分片分配给虚拟化计算集群中的相应虚拟化计算节点,由相应虚拟化计算节点对分配的任务执行计算操作;

控制模块303,配置为接收定时返回的指示信号,所述指示信号指示所述计算节点是否正常操作,

其中,当没有从特定虚拟化计算节点接收到指示信号时,所述控制模块303确定该特定虚拟化计算节点为故障节点,并确定是否满足预定条件;以及

当满足预定条件时,所述控制模块303等待该特定虚拟化计算节点恢复以继续执行已分配的任务分片的计算操作。

优选地,所述控制模块303进一步配置为:

估计重新执行已分配给该特定虚拟化计算节点的第一任务分片所需的计算时间;

将估计的计算时间与预先设置的虚拟化计算节点的恢复时间比较;

如果估计的计算时间大于所述恢复时间,则确定满足预定条件。

优选地,所述控制模块303进一步配置为:

获取分配给该特定虚拟化计算节点的任务分片的未完成部分的信息;

根据获取的未完成部分的信息估计重新执行该任务分片的未完成部分所需的计算时间。

优选地,所述任务分配模块302进一步配置为

当不满足预定条件时,将已分配给该特定虚拟化计算节点的任务分片中的未完成部分分配给其它虚拟化计算节点。

优选地,所述任务分配模块302进一步配置为:

按照距离顺序,从近到远将已分配给该特定虚拟化计算节点的任务分片中的未完成部分分配给其它虚拟化计算节点。

优选地,所述控制模块303进一步配置为

接收从执行计算操作的相应虚拟化计算节点的每个返回的任务分片的处理结果;以及

会聚所有的处理结果以生成要输出的处理结果。

因此,根据本发明实施例的任务调度方法和电子设备,能够针对虚拟化 计算平台更好地调度任务。

因此,根据本发明实施例的电子设备,在执行计算任务的虚拟化计算节点出现故障时,能够根据自身状态判断是等待该计算节点重启或将计算任务分配给其它节点,从而能够针对虚拟化计算平台更好地调度任务,大大地提高计算效率。

需要注意的是,上面的实施例仅仅是用作示例,本发明不限于这样的示例,而是可以进行各种变化。

例如,该电子设备可以是包括多个具有计算能力的物理机集群。

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

最后,还需要说明的是,上述一系列处理不仅包括以这里所述的顺序按时间序列执行的处理,而且包括并行或分别地、而不是按时间顺序执行的处理。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的硬件平台的方式来实现,当然也可以全部通过硬件来实施。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM(只读存储器)/RAM(随机存取存储器)、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。

以上对本发明进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

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