一种分布式集群及并行计算任务调度方法技术

技术编号:20362677 阅读:32 留言:0更新日期:2019-02-16 16:26
本发明专利技术涉及一种分布式集群及并行计算任务调度方法,将待处理的任务进行分解,并对分解的子任务分配到多个任务机上执行,当已经完成的子任务数量与所有子任务数量的占比达到设定比值时,将剩余没有完成的子任务进行再分解,将分解得到的次级子任务分配到其他空闲的任务机上执行。本发明专利技术利用集群空闲资源对进度滞后的子任务进行同步计算,提高了任务运行的可靠性,加快了计算任务的运行速度,同时缩短了任务的执行时间。

【技术实现步骤摘要】
一种分布式集群及并行计算任务调度方法
本专利技术属于分布式系统并行计算任务调度
,具体涉及一种分布式集群及并行计算任务调度方法。
技术介绍
近年来,以大数据、云计算、物联网和移动互联网为代表的新一代信息技术蓬勃发展,而支撑这些信息技术发展的任务机(即服务器)规模也越来越庞大。并且随着信息技术应用领域的不断扩展,不同的任务机经常需要同时执行用户的多个应用(即任务)。因此如何高效、合理地对这些跨任务机执行的应用的服务关系进行管理、维护和调度,就成为迫切需要解决的问题。随着信息技术的发展,针对海量数据的复杂计算任务,垂直升级任务机的配置已经不能满足任务的运行需要,水平扩展任务机集群已被公认是解决问题的最佳办法,但多任务机执行任务,调度的复杂度成倍增加,在现有的分布式系统中任务调度(尤其是分布式内存计算领域)就存在以下问题:第一,对于每个任务(Task),客户端向分布式系统提交请求时,分布式系统会随机选择一台任务机启动一个针对该任务的管理模块(Appmaster),负责任务的分配与执行状态的监控,但在大型分布式集群中,单台任务机出现故障的概率比较高,而现有的做法是在Appmaster故障一段时间后,分布式系统针对该任务再重新启动一个Appmaster,监控整个任务的运行情况,但从旧Appmaster故障发生到新的Appmaster启动成功,历时时间较长,大型复杂的任务计算实时性无法保证;第二,对于大型且复杂的任务,可以拆分成多个子任务并发运行,子任务运行过程中会通过心跳向任务管理模块汇报任务状态,但由于任务机自身配置等原因,有些子任务的执行速度过于缓慢,以至于拖延了整个任务的完成时间,进而降低了整个分布式系统对外提供服务的性能。例如,一篇公布号为CN106874094A、名称为“定时任务处理方法、装置及计算设备”的中国专利就存在上述问题。
技术实现思路
本专利技术的目的是提供一种分布式集群及并行计算任务调度方法,用于解决现有分布式系统并行任务的调度和执行效率慢的问题。为解决上述技术问题,本专利技术提出一种基于分布式系统的并行计算任务调度方法,包括以下方法方案:方法方案一,包括如下步骤:1)根据接收的任务请求,将任务分解成两个以上的子任务,将各子任务分配到各任务机上;2)实时监测各子任务的完成进度,当已经完成的子任务数量占所有子任务数量的比值达到设定的比值时,将剩余未完成的每个子任务分解成两个以上的次级子任务,将各次级子任务分配到空闲的任务机上。方法方案二,在方法方案一的基础上,各次级子任务分配到空闲的任务机上进行运算的同时,保持所述剩余未完成的子任务在原来的任务机上继续进行运算,选择最先输出的运行结果作为最终的运行结果。方法方案三,在方法方案一的基础上,还包括根据接收的任务请求选择第一任务机的步骤,第一任务机用于将任务分解成两个以上的子任务,并将各子任务分配到各任务机上,以及用于监视各任务机执行子任务的进度。方法方案四,在方法方案三的基础上,包括根据接收的任务请求选择第二任务机的步骤,第二任务机用于在第一任务机工作异常时代替第一任务机工作。方法方案五,在方法方案四的基础上,所述第一任务机和第二任务机分别设在分布式系统的不同任务机架上。为解决上述技术问题,本专利技术还提出一种分布式集群,包括以下集群方案:集群方案一,包括三个以上的任务机,所述任务机中的一个作为第一任务机,用于将任务分解成两个以上的子任务,将各子任务分配到其他各任务机上,并实时监测子任务的完成进度,当已经完成的子任务数量占所有子任务数量的比值达到设定的比值时,将剩余未完成的每个子任务分解成两个以上的次级子任务,将各次级子任务分配到空闲的任务机上。集群方案二,在集群方案一的基础上,各次级子任务分配到空闲的任务机上进行运算的同时,保持所述剩余未完成的子任务在原来的任务机上继续进行运算,选择最先输出的运行结果作为最终的运行结果。集群方案三,在集群方案一的基础上,排除所述第一任务机的剩余任务机中的一个作为第二任务机,用于第一任务机工作异常时代替第一任务机工作。集群方案四,在集群方案三的基础上,所述第一任务机和第二任务机分别设在分布式系统的不同任务机架上。本专利技术的有益效果是:本专利技术将待处理的任务进行分解,并对分解的子任务分配到多个任务机上执行,当已经完成的子任务数量与所有子任务数量的占比达到设定比值时,将剩余没有完成的子任务进行再分解,将分解得到的次级子任务分配到其他空闲的任务机上执行。本专利技术利用集群空闲资源对进度滞后的子任务进行同步计算,提高了任务运行的可靠性,加快了计算任务的运行速度,同时缩短了任务的执行时间。进一步,在各次级子任务分配到空闲的任务机上进行运算的同时,保持次级子任务分解前的子任务在原来任务机上的运算,并选择最先输出的运行结果作为最终的运行结果,保证子任务在最短的时间内完成。进一步,再选取一个任务机,一共选取两个任务机分别担任主任务机和备用任务机,第一任务机作为主任务机,第二任务机作为备用任务机,主任务机在正常工作时承担分派子任务、次级子任务的工作,同时监视子任务的完成进度,在主任务机异常时,由备用任务机代替主任务机完成上述工作,有效的提高了分布式计算任务的可靠性和成功率。进一步,在分布式系统的不同任务机架上选取上述主任务机和备用任务机,进一步提高分布式计算任务的可靠性和成功率,减少了因为任务失败而导致的资源浪费,优化了分布式集群的计算效率。附图说明图1是具有两个任务的主、备任务管理模块的分布式系统任务框图,其中一个任务的主、备任务管理模块分别为ActiveAppMaster1和StandbyAppMaster1,另一个任务的主、备任务管理模块分别为ActiveAppMaster2和StandbyAppMaster2;图2是本专利技术一种任务的具体执行流程图。具体实施方式下面结合附图对本专利技术的具体实施方式作进一步的说明。实施例一:本专利技术基于分布式系统,提出了以下并行计算任务的调度方法:根据接收的任务请求,将待处理的任务分解成两个以上的子任务,并将各子任务分配到各任务机上。同时,实时监测子任务的完成进度,当已经完成的子任务数量占所有子任务数量的比值达到设定的比值时,将剩余未完成的子任务进行再分解,至少分解成两个次级子任务,将各次级子任务分配到空闲的任务机上。本专利技术利用集群空闲资源对进度滞后的子任务进行同步计算,提高了任务运行的可靠性,加快了计算任务的运行速度,同时缩短了任务的执行时间。上述各次级子任务分配到空闲的任务机上进行运算的同时,保持剩余未完成的子任务在原来的任务机上继续进行运算,在剩余未完成的子任务的运算结果和所述各次级子任务的运算结果之中,选择最先输出的运行结果作为最终的运行结果,保证子任务在最短的时间内完成。本专利技术子任务的分解和监视工作是通过选取第一任务机并由第一任务机承担上述工作的,为了提高了分布式计算任务的可靠性和成功率,作为第一任务机的备用,还需选取第二任务机作为备用任务机,而第一任务机作为主任务机,主任务机在正常工作时承担分派子任务、次级子任务的工作,同时监视子任务的完成进度,在主任务机异常时,由备用任务机代替主任务机完成上述工作。优选的,主任务机的正常工作状态包括主任务机能够周期上传各子任务的完成进度,主任务机主要异常可以本文档来自技高网
...

【技术保护点】
1.一种基于分布式系统的并行计算任务调度方法,其特征在于,包括以下步骤:1)根据接收的任务请求,将任务分解成两个以上的子任务,将各子任务分配到各任务机上;2)实时监测各子任务的完成进度,当已经完成的子任务数量占所有子任务数量的比值达到设定的比值时,将剩余未完成的每个子任务分解成两个以上的次级子任务,将各次级子任务分配到空闲的任务机上。

【技术特征摘要】
1.一种基于分布式系统的并行计算任务调度方法,其特征在于,包括以下步骤:1)根据接收的任务请求,将任务分解成两个以上的子任务,将各子任务分配到各任务机上;2)实时监测各子任务的完成进度,当已经完成的子任务数量占所有子任务数量的比值达到设定的比值时,将剩余未完成的每个子任务分解成两个以上的次级子任务,将各次级子任务分配到空闲的任务机上。2.根据权利要求1所述的基于分布式系统的并行计算任务调度方法,其特征在于,各次级子任务分配到空闲的任务机上进行运算的同时,保持所述剩余未完成的子任务在原来的任务机上继续进行运算,选择最先输出的运行结果作为最终的运行结果。3.根据权利要求1所述的基于分布式系统的并行计算任务调度方法,其特征在于,还包括根据接收的任务请求选择第一任务机的步骤,第一任务机用于将任务分解成两个以上的子任务,并将各子任务分配到各任务机上,以及用于监视各任务机执行子任务的进度。4.根据权利要求3所述的基于分布式系统的并行计算任务调度方法,其特征在于,包括根据接收的任务请求选择第二任务机的步骤,第二任务机用于在第一任务机工作异常...

【专利技术属性】
技术研发人员:张展国张妮罗开明徐大青贺彪王少鹏吕梦婷
申请(专利权)人:国家电网有限公司许继集团有限公司许昌许继软件技术有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1