任务集群调度管理方法及装置与流程

文档序号:18923168发布日期:2019-10-19 03:46阅读:181来源:国知局
任务集群调度管理方法及装置与流程

本发明涉及计算机任务集群调度管理领域,具体而言,涉及一种任务集群调度管理方法及装置。



背景技术:

大型计算任务常常包括许多子任务,在大型计算任务中需要将所有子任务执行完毕,该大型计算任务才能算执行完毕。在多子任务的执行过程中如只考虑将子任务进行分布式处理,可能存在以下问题,其中某些子任务需要依赖于其它子任务的结果,即便将这些子任务分发给执行终端这些子任务也无法马上执行,被分发这些子任务的执行终端会被空置,严重影响任务执行的效率。



技术实现要素:

为了克服现有技术中的上述不足,本发明所要解决的技术问题是提供一种任务集群调度管理方法及装置,其能够根据任务与任务之间的执行依赖关系对任务进行次序执行,提高任务执行的效率。

本发明一较佳实施方式提供一种任务集群调度管理方法,应用于与任务执行终端通信的任务管理终端,其特征在于,所述方法包括:

工作流调度步骤,对预先定义的工作流进行调度,所述预先定义的工作流包括多组之间存在执行依赖顺序的任务,其中无前置依赖关系的一组任务是需要最先执行的任务;

任务分发步骤,将所述无前置依赖关系的一组任务分发给至少一任务执行终端执行;

监听步骤,监听所述无前置依赖关系的一组任务在所述至少一任务执行终端上的执行状况;

任务调度步骤,在监听到所述无前置依赖关系的一组任务执行完成时,按照任务执行依赖顺序调度剩余任务;

重复所述任务分发步骤、监听步骤及任务调度步骤,直到所述工作流中所有的任务执行完成。

本发明另一较佳实施例还提供一种任务集群调度管理方法,应用于相互之间通信连接的任务执行终端及任务管理终端,所述方法包括:

工作流调度步骤,所述任务管理终端对预先定义的工作流进行调度,所述预先定义的工作流包括多组之间存在执行依赖顺序的任务,其中无前置依赖关系的一组任务是需要最先执行的任务;

任务分发步骤,所述任务管理终端将所述无前置依赖关系的一组任务分发给至少一任务执行终端执行;

任务执行步骤,所述至少一任务执行终端执行所述无前置依赖关系的一组任务;

监听步骤,所述任务管理终端监听所述无前置依赖关系的一组任务在所述至少一任务执行终端上的执行状况;

任务调度步骤,所述任务管理终端在监听到所述无前置依赖关系的一组任务执行完成时,按照任务执行依赖顺序调度剩余任务;

重复任务分发步骤、任务执行步骤、监听步骤及任务调度步骤,直到所述工作流执行完成。

本发明另一较佳实施例还提供一种任务集群调度管理装置,应用于与任务执行终端通信的任务管理终端上,其特征在于,所述装置包括:

工作流调度模块,用于对预先定义的工作流进行调度,所述预先定义的工作流包括多组之间存在执行依赖顺序的任务,其中无前置依赖关系的一组任务是需要最先执行的任务;

任务分发模块,用于将所述无前置依赖关系的一组任务分发给至少一任务执行终端执行;

监听模块,用于监听所述无前置依赖关系的一组任务在所述至少一任务执行终端上的执行状况;

任务调度模块,用于在监听到所述无前置依赖关系的一组任务执行完成时,按照任务执行依赖顺序调度剩余任务;

其中,所述任务分发模块、监听模块以及任务调度模块依次循环执行,直到所述工作流中所有的任务执行完成。

相对于现有技术而言,本发明具有以下有益效果:

通过设定任务之间的执行依赖关系建立起任务执行的先后顺序,在应当先执行任务执行完成后,才会将依赖于该任务的其它任务分发给执行终端进行执行,可以有效避免因任务无序分发而造成的资源浪费及任务执行效率低的技术问题。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本发明实施例提供的任务管理终端与至少一任务执行终端的交互示意图;

图2为本发明实施例提供的任务管理终端的方框示意图;

图3为本发明第一实施例提供的图2中所示任务集群调度管理装置的一种功能模块框图;

图4是本发明第一实施例提供的任务集群调度管理方法的具体流程图;

图5是本发明第一实施例提供的一个具体例子中工作流的示意图;

图6是本发明第一实施例提供的调度器交叉认证的示意图;

图7是本发明第二实施例提供的任务集群调度管理方法的具体流程图。

上述附图中,各附图标记对应的名称为:

具体实施方式

下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

请参照图1,是本发明较佳实施例提供的任务管理终端100与任务执行终端200通信的交互示意图。所述任务管理终端100可通过网络300与所述任务执行终端200进行通信,以实现所述任务管理终端100与所述任务执行终端200之间的数据连接或交互。

请参照图2,是图1为本发明实施例提供的一种任务管理终端100的方框示意图。所述任务管理终端100包括任务集群调度管理装置110、存储器111、存储控制器112、处理器113以及通信单元114。

所述存储器111、存储控制器112、处理器113及通信单元114各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述任务集群调度管理装置110包括至少一个可以软件或固件(firmware)的形式存储于所述存储器111中或固化在所述任务管理终端100的操作系统(operating system,OS)中的软件功能模块。所述存储器111存储应用程序。所述处理器113用于执行所述存储器111中存储的可执行模块,例如所述任务集群调度管理装置110所包括的软件功能模块及计算机程序等。

其中,所述存储器111可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。其中,存储器111用于存储程序,所述处理器113在接收到执行指令后,执行所述程序。所述处理器113以及其他可能的组件对存储器111的访问可在所述存储控制器112的控制下进行。

所述处理器113可能是一种集成电路芯片,具有信号的处理能力。上述的处理器113可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(DSP))、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

所述通信单元114用于通过所述网络300建立所述任务管理终端100及任务执行终端200两者之间的通信连接,从而实现所述任务管理终端100对所述任务执行终端200上执行任务的管理。

第一实施例

请参照图3,图3是本发明较佳实施例提供的图2所示任务集群调度管理装置110的功能模块框图。所述任务集群调度管理装置110包括工作流调度模块1101、任务分发模块1102、监听模块1103及任务调度模块1104。图4是本发明较佳实施例提供的任务集群调度管理方法的流程图。所述方法相关的流程的方法步骤可以由所述工作流调度模块1101、任务分发模块1102、监听模块1103及任务调度模块1104来实现。下面对各个模块具体如何实现具体流程进行详细阐述。

步骤S111,所述工作流调度模块1101对预先定义的工作流进行调度。

在本实施例中,所述预先定义的工作流包括多组之间存在执行依赖顺序的任务。

具体地,在所述任务管理终端上可以通过可视化界面对工作流进行预先定义,其中,对工作流的预先定义的内容包括,但不限于,定义任务及任务之间的执行先后顺序。举例进行说明,假设,现在需要对商户的信息进行加工以供其他平台使用,其中,商户的信息包括但不限于商户交易报表数据统计、活动数据报表统计及商户会员报表数据统计。为了使数据在不同平台之间兼容或者一致,在例子中可以通过白名单的方式进行数据控制。这样就演化出一个数据加工流程:获得白名单商户-->提出基础数据-->数据二次加工-->生成业务数据。数据的加工过程可以参照图5,根据图5所示,可以知道上述工作流由8个任务组成。任务依赖关系为:先执行任务[提取白名单商户ID],待此任务执行结束之后再执行[新增白名单商户ID插入其他平台业务报表],任务执行结束后,再同时并发执行任务[商户交易报表数据统计]、[活动数据报表统计]和[商户会员报表数据统计],待任务活动数据报表处理结束后,接着执行任务[场景营销报表统计],执行结束后接着执行[场景营销报表结果入库]。任务[结束数据加工,善后处理]需要等待商户交易报表数据统计、商户会员报表数据统计、场景营销报表结果入库这三个任务全部处理结束后才能开始处理。在明白工作流中任务之间的相互关系后,即可以在所述任务管理终端上的可视化界面上定义任务,并建立任务之间的执行依赖关系。

在本实施例中,所述可视化界面上还可以设置以下功能。资源配置功能,上述对任务的定义就是采用该资源配置功能实现的,所述资源配置功能还可以包括配置定时调度、实时查看服务器注册情况等。权限控制功能,通过用户、角色、权限实现功能权限、数据权限的配置管理。弹性扩容功能,通过自动服务注册机制完成扩容,执行终端的扩容需要两步完成,首先通过资源配置管理界面编辑任务执行终端数量,然后增加任务执行终端部署节点通过自动服务注册机器完成扩容。实时状态监控功能,实时监控工作流及任务的运行状态,实时反馈任务的处理进度,执行成功或者失败的情况及运行超时警告等情况。

在本实施例中,在用户对工作流进行预定义之后,任务集群调度管理装置110根据工作流将这种依赖关系组装成一个图,定义的工作流是否正确、是否存在闭环,通过图是否满足有向无环图的特征来进行判断。具体的判断算法可以采用深度优先搜索算法和拓扑排序算法,其中工作流在执行过程中,通过将有向无环图转变为一个拓扑队列来进行处理。

步骤S112,任务分发模块1102将任务分发给至少一任务执行终端执行。

在本实施例中,所述任务分发模块1102首先将无前置依赖关系的一组任务分发给至少一任务执行终端执行。

具体地,所述无前置依赖关系的一组任务是指该组任务的执行不需要依赖其他任务的执行结果,一般而言,在本实施例中,所述无前置依赖关系的一组任务是指在工作流中第一个需要执行的任务。比如,上述举例中的任务“提取白名单商户ID”。

所述任务分发模块1102在进行任务分发时,还将任务进行分片处理以得到任务数据分片,并将所述任务数据分片发送给所述至少一任务执行终端执行。

在本实施例中,任务数据分片的数量为执行该任务的执行终端数据及注册执行终端数量中的较小值。

其中,通过所述任务管理终端100上的可视化界面可以定义任务的执行终端数量:M,也可以通过读取zookeeper获得注册执行终端数量:R。所述数据分片的片数P=min{M,R}。

步骤S113,监听模块1103监听所述任务在所述至少一任务执行终端上的执行状况。

在本实施例中,可以通过日志系统对所述至少一任务执行终端上的数据分片的执行日志进行收集,以实现对述至少一任务执行终端上的执行状况的监听。

具体地,通过对日志系统进行改造,使得所述执行终端上产生的日志根据工作流的执行地址进行分组聚合,最终日志系统将收集到的日志进行整理,使一个执行地址对应一个日志文件。

在本实施例中,所述任务管理终端采用基于事件的调度机制,通过zookeeper的事件监听实现了集群内的事件同步,通过对事件的再次封装,避免了同一事件在集群内的多次响应。

步骤S114,任务调度模块1104,在监听到所述任务执行完成时,判断是否还有需要执行的任务,当还有时进入步骤S112按照任务执行依赖顺序调度剩余任务,重复任务分发步骤S112、监听步骤S113及任务调度步骤S114,直到所述工作流中所有的任务执行完成。当没有需要执行的任务时,结束流程。

在多个任务之间存在执行依赖关系的情况下,按照执行的先后顺序对工作流中的任务进行顺序进行分布式调度执行。

在本实施例中,所述任务集群调度管理方法还可以包括:为每一工作流选取主执行终端,所述主执行终端有权调度所述工作流。

具体地,判断所有在线的执行终端的权重值大小,若权重值不同,选择权重值最大的执行终端为主执行终端;若权重值相同,从所有在线的执行终端中随机选择一个执行终端做为主执行终端;若无法从所有在线的执行终端中随机选择得到主执行终端,则将工作流下第一个注册的执行终端做为所述主执行终端。

在本实施例中,采用随机函数随机选择一个执行终端做为主执行终端,其中,所述随机函数可以采用常用的随机分布算法(比如,一致性哈希算法)来实现。

具体地,所述执行终端在每个工作流下进行交叉注册,将工作流下第一个注册的执行终端做为所述主执行终端,或根据每个工作流下注册执行终端的权重值,选择权重值最大的执行终端做为所述主执行终端。

在本实施例中,只有成为主执行终端的执行终端才有权调度该工作流,为了避免绝大多数工作流由同一执行终端作为主执行终端,所述任务集群调度管理装置对执行终端上的调度器进行负载均衡处理。具体地,请参照图6,为采用交叉注册方式进行选择主执行终端的示意图,对于工作流Flow1、Flow2及Flow3采用交叉注册的方式进行主执行终端分配。通过交叉注册机制,初步实现的调度器的负载均衡,避免所有工作流的调度落在一台执行终端上。

在本实施例中,为了保证任务能顺利及时的执行,所述任务集群调度管理方法采用失效转移的方式对执行失败的任务进行转移。具体地,所述监听模块1103在监听到任务执行端上的任务数据分片执行失败时,将所述执行失败的任务数据分片调度给其它任务执行终端执行。

第二实施例

本实施例提供一种任务集群调度管理方法,该任务集群调度管理方法应用于相互之间通信连接的任务执行终端200及任务管理终端100,所述方法包括:

步骤S211,所述任务管理终端100对预先定义的工作流进行调度,所述预先定义的工作流包括多组之间存在执行依赖顺序的任务,其中无前置依赖关系的一组任务是需要最先执行的任务。

步骤S212,所述任务管理终端100将任务分发给至少一任务执行终端执行。

在本实施例中,所述任务管理终端100首先将无前置依赖关系的一组任务分发给至少一任务执行终端执行。

步骤S213,所述至少一任务执行终端200执行所述任务。

步骤S214,所述任务管理终端100监听所述任务在所述至少一任务执行终端200上的执行状况。

步骤S215,所述任务管理终端100在监听到所述任务执行完成时,判断是否还有需要执行的任务,当还有时进入步骤S212按照任务执行依赖顺序调度剩余任务,重复任务分发步骤S212、任务执行步骤S213、监听步骤S214及步骤S215,直到所述工作流中所有的任务执行完成。当没有需要执行的任务时,结束流程。

综上所述,本发明实施提供的任务集群调度管理方法及装置,通过设定任务之间的执行依赖关系建立起任务执行的先后顺序,在应当先执行任务执行完成后,才会将依赖于该任务的其它任务分发给执行终端进行执行,可以有效避免因任务无序分发而造成的资源浪费及任务执行效率低的技术问题。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,也可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的设备、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

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

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

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

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