分布式调度方法技术

技术编号:39591072 阅读:7 留言:0更新日期:2023-12-03 19:45
本申请涉及计算机技术领域,提供一种分布式调度方法

【技术实现步骤摘要】
分布式调度方法、装置、电子设备和计算机程序产品


[0001]本申请涉及计算机
,具体涉及一种分布式调度方法

装置

电子设备和计算机程序产品


技术介绍

[0002]目前,调度系统可解决大数据平台下的任务管理

调度及监控,并提供定时触发和依赖触发,任务调度系统提供的基础功能包括:时间调度,基于时间条件触发程序运行;依赖调度,基于其他程序的执行结果进行调度执行;数据可用性调度,基于数据完整性与可用性进行调度执行

常用调度系统包括
Azkaban

Dolphinscheduler
,其中,
Azkaban
调度是基于数据流式的,不能灵活的支持分布式任务且完全通过压缩文件来管理任务;
Dolphinscheduler
调度是依赖图是通过前端页面构建,对于多任务复杂管理不够灵活,且所有任务都是保存到数据库的一个字段,导致通过后端服务构建依赖图关系相对较为复杂

由此可知,上述任务调度系统都不支持整个任务由于网络或服务器宕机等原因导致服务重启以后,自动拉起或者按指定参数重新运行历史任务,从而导致任务处理效率低


技术实现思路

[0003]本申请实施例提供一种分布式调度方法

装置

电子设备和计算机程序产品,用以解决任务调度系统的任务处理效率低的技术问题

[0004]第一方面,本申请实施例提供一种分布式调度方法,包括:
[0005]将待调度任务进行分片得到至少两个子任务;
[0006]对至少两个所述待调度任务的子任务进行分组,并将每个组执行任务时生成的中间数据存储至分布式快照系统;
[0007]当检测到所述子任务发生故障时,从所述分布式快照系统中恢复所述中间数据;
[0008]根据所述中间数据确定故障子任务,并根据所述故障子任务重新执行任务

[0009]在一个实施例中,所述将每个组执行任务时生成的中间数据存储至状态存储系统之后,所述方法,还包括:
[0010]当检测到所述子任务或所述分布式快照系统发生故障时,确定故障时间段以及任务调度周期;
[0011]根据所述故障时间段以及所述任务调度周期生成调度周期实例;
[0012]根据所述调度周期实例重新执行任务

[0013]在一个实施例中,所述对至少两个所述待调度任务的子任务进行分组包括:
[0014]确定每个所述待调度任务中各个所述子任务的执行顺序;
[0015]根据所述执行顺序对至少两个所述待调度任务的子任务进行分组

[0016]在一个实施例中,所述将每个组执行任务时生成的中间数据存储至分布式快照系统包括:
[0017]确定每个组的所述子任务的业务场景以及所述中间数据的存储需求;
[0018]根据所述业务场景以及所述存储需求,将每个组执行任务时生成的中间数据存储至所述分布式快照系统

[0019]在一个实施例中,所述将每个组执行任务时生成的中间数据存储至分布式快照系统,还包括:
[0020]将每个组执行任务时生成的执行任务数据以及执行代码进行标注处理,所述中间数据包括经过标注的所述执行任务数据和所述执行代码;
[0021]将所述中间数据存储至所述分布式快照系统

[0022]在一个实施例中,所述根据所述中间数据确定故障子任务包括:
[0023]根据所述中间数据确定各个所述子任务的标识信息;
[0024]根据所述标识信息确定所述故障子任务

[0025]在一个实施例中,所述对至少两个所述待调度任务的子任务进行分组之后,包括:
[0026]根据执行器的数量以及每个组中所述子任务的数量,确定每个组中所述子任务的执行顺序;
[0027]控制所述执行器按照所述执行顺序执行每个组中的所述子任务

[0028]第二方面,本申请实施例提供一种分布式调度装置,包括:
[0029]分片模块,用于将待调度任务进行分片得到至少两个子任务;
[0030]分组模块,用于对至少两个所述待调度任务的子任务进行分组,并将每个组执行任务时生成的中间数据存储至分布式快照系统;
[0031]恢复模块,用于当检测到所述子任务发生故障时,从所述分布式快照系统中恢复所述中间数据;
[0032]执行模块,用于根据所述中间数据确定故障子任务,并根据所述故障子任务重新执行任务

[0033]第三方面,本申请实施例提供一种电子设备,包括处理器和存储有计算机程序的存储器,所述处理器执行所述程序时实现第一方面所述的分布式调度方法的步骤

[0034]第四方面,本申请实施例提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现第一方面所述的分布式调度方法的步骤

[0035]本申请实施例提供的分布式调度方法

装置

电子设备和计算机程序产品,通过将待调度任务进行分片得到至少两个子任务,对至少两个待调度任务的子任务进行分组,并将每个组执行任务时生成的中间数据存储至分布式快照系统,当检测到子任务发生故障时,从分布式快照系统中恢复中间数据,根据中间数据确定故障子任务,并根据故障子任务重新执行任务,基于此,在任务调度系统不支持整个任务由于网络或服务器宕机等原因导致服务重启后,可以自动从分布式快照系统中恢复中间数据,并从故障子任务所在的位置从新执行任务,使得可以快速恢复任务,确保任务的及时

正确运行,从而提高任务处理效率

附图说明
[0036]为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些
附图获得其他的附图

[0037]图1是本申请实施例提供的分布式调度方法的流程示意图之一;
[0038]图2是本申请实施例提供的分布式调度方法的流程示意图之二;
[0039]图3是本申请实施例提供的分布式调度方法的流程示意图之三;
[0040]图4是本申请实施例提供的任务分片的示意图;
[0041]图5是本申请实施例提供的子任务分组的流程示意图;
[0042]图6是本申请实施例提供的中间数据存储的流程示意图;
[0043]图7是本申请实施例提供的任务发生故障的流程示意图;
[0044]图8是本申请实施例提供的分布式调度装置的结构示意图;
[0045]图9是本申请实施例提供的电子设备的结构示意图

具体实本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种分布式调度方法,其特征在于,包括:将待调度任务进行分片得到至少两个子任务;对至少两个所述待调度任务的子任务进行分组,并将每个组执行任务时生成的中间数据存储至分布式快照系统;当检测到所述子任务发生故障时,从所述分布式快照系统中恢复所述中间数据;根据所述中间数据确定故障子任务,并根据所述故障子任务重新执行任务
。2.
根据权利要求1所述的分布式调度方法,其特征在于,所述将每个组执行任务时生成的中间数据存储至状态存储系统之后,所述方法,还包括:当检测到所述子任务或所述分布式快照系统发生故障时,确定故障时间段以及任务调度周期;根据所述故障时间段以及所述任务调度周期生成调度周期实例;根据所述调度周期实例重新执行任务
。3.
根据权利要求1所述的分布式调度方法,其特征在于,所述对至少两个所述待调度任务的子任务进行分组包括:确定每个所述待调度任务中各个所述子任务的执行顺序;根据所述执行顺序对至少两个所述待调度任务的子任务进行分组
。4.
根据权利要求1所述的分布式调度方法,其特征在于,所述将每个组执行任务时生成的中间数据存储至分布式快照系统包括:确定每个组的所述子任务的业务场景以及所述中间数据的存储需求;根据所述业务场景以及所述存储需求,将每个组执行任务时生成的中间数据存储至所述分布式快照系统
。5.
根据权利要求1所述的分布式调度方法,其特征在于,所述将每个组执行任务时生成的中间数据存储至分布式快照系统,还包括:将每个组执行任务时生成的执行任务数据以...

【专利技术属性】
技术研发人员:刘勇
申请(专利权)人:中移系统集成有限公司中国移动通信集团有限公司
类型:发明
国别省市:

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

1