一种基于期望目标驱动的作业调度方法及系统与流程

文档序号:36741362发布日期:2024-01-16 14:43阅读:88来源:国知局
一种基于期望目标驱动的作业调度方法及系统与流程

本发明涉及系统运行调度管理及大数据处理,尤其涉及一种基于期望目标驱动的作业调度方法及系统。


背景技术:

1、作业调度系统(例如dolphinscheduler和azkaban),区别于资源调度系统(例如yarn和mesos),主要功能是确保作业在规定的时间开始运行,并以规定的先后顺序执行。先后执行顺序由作业的依赖关系决定。所有作业实际构成了一个有向无环图(dag)。在作业调度系统领域,对象的作业一般每天运行,作业的实例与具体的运行日期相关,为便于理解可以将作业实例关联的具体日期称为批次日期。

2、在作业调度系统领域,存在一部分具有特殊要求的高时效作业,例如常见的业务上要求某些特定作业在某个限制时间点前必须完成。为保障高时效作业的完成时效,一般会为其设置高优先级,以确保其能够优先获得资源,或为其配置独立的执行队列,避免高时效作业与其他作业争抢资源。这类现有技术在一定程度上能够保障高时效作业的时效,但是在实际应用中还存在很大局限性,仅仅为高时效作业设置高优先级和配置独立队列不能确保高时效作业依照要求准时完成,而仍然需要人工进行干预操作,导致处理效率低下、不能保证完成期限。

3、其中一个很重要的问题是对于作业关联性考虑的缺失。对于完整的业务实现过程,其中所涉及的众多作业可能存在错综复杂的依赖关系。如果只对高时效作业设置高优先级和配置独立队列而缺少对于高时效作业的上游作业分析,则大概率会由于上游作业未能及时运行而导致高时效作业无法正常启动,时效无法满足。

4、基于现有技术,一种可能的处理方法是针对高时效作业有效分析其全部上游作业,并将高时效作业及其上游作业都对应设置高优先级和配置独立队列。但是,这种解决方案仍然存在难以解决的技术问题,包括:

5、(1)作业依赖的动态性导致实施复杂。一方面,高时效作业的上游作业因业务调整会出现变化,另一方面,作业实际个数可达到数万个到数十万个,人工设置上游作业的优先级和配置独立队列工作量大且繁琐。

6、(2)时效与优先级无法有效映射。高时效作业的时效可以是任意时刻,例如4:00前、5:15前,也就是说时效等级众多;而优先级的等级一般不会太多,例如10个(从0到9,0表示最高优先级,9表示最低优先级)、5个(最高、高、中、低、最低)、3个(高、中、低)。因此从时效等级映射到优先级等级存在一定困难。另外,一个作业可能同时属于多个不同时效要求的高时效作业的上游,其处理的优先级也难以确定。

7、(3)产生大量独立队列。由于权限和资源限制的要求,一个高时效作业的所有上游作业不可能只放到一个队列中,因此如果确实需要独立队列,势必需要在原有每个队列的基础上增加一个独立队列,造成队列翻倍,对于系统处理资源占用过大、运行效率低。


技术实现思路

1、为解决现有技术的不足,本发明提出一种基于期望目标驱动的作业调度方法及系统,通过对高时效作业的预设期望完成时间目标为依据,获得相关上游作业的对应期望完成时间形成符合处理逻辑的作业完成时间目标链,使用户在建立作业调度时无需关注时效与优先级的关系、无需关注高时效作业的上游、无需专门为高时效作业配置独立队列,在保障高时效作业的前提下,简化高时效作业的配置要求。

2、为实现以上目的,本发明所采用的技术方案包括:

3、一种基于期望目标驱动的作业调度方法,其特征在于,包括:

4、s1、识别起始作业,归集所有起始作业建立输入列表,所述起始作业为不存在上游作业的独立作业;

5、s2、选择输入列表中的任一起始作业作为输入作业;

6、s3、判断输入作业是否设置了期望完成时间,当判断输入作业设置了期望完成时间时,使用期望完成时间初始化设定目标时间;

7、s4、当判断输入作业未设置期望完成时间时,使用预设最大完成时间初始化设定目标时间;

8、s5、判断输入作业是否存在对应的下游作业,当判断输入作业不存在对应的下游作业时,依据目标时间生成输入作业的期望开始时间;

9、s6、当判断输入作业存在对应的下游作业时,使用下游作业信息更新目标时间,再依据目标时间生成输入作业的期望开始时间;

10、s7、将已经生成期望开始时间的输入作业从输入列表中删除;

11、s8、判断输入列表是否存在起始作业,当判断输入列表存在起始作业时,重复执行步骤s2至s7;

12、s9、当判断输入列表不存在起始作业时,生成包含有期望开始时间的控制表,依据控制表调度作业运行。

13、进一步地,所述期望完成时间包括24小时制的任一时间点;所述预设最大完成时间包括24小时制的预设特定时间点。

14、进一步地,所述初始化设定目标时间包括添加输入作业对应的批次日期信息。

15、进一步地,所述使用下游作业信息更新目标时间包括:

16、将下游作业作为输入作业执行步骤s3至s6,生成下游作业的期望开始时间;

17、使用下游作业的期望开始时间更新目标时间。

18、进一步地,所述依据目标时间生成输入作业的期望开始时间包括:

19、判断目标时间是否对应预设最大完成时间;

20、当判断目标时间对应预设最大完成时间时,使用目标时间作为输入作业的期望开始时间;

21、当判断目标时间不对应预设最大完成时间时,使用目标时间与输入作业的预估运行时长之差计算获得输入作业的期望开始时间。

22、进一步地,所述依据控制表调度作业运行包括依据控制表记录期望开始时间和作业的优先级调度作业运行。

23、本发明还涉及一种基于期望目标驱动的作业调度系统,其特征在于,包括:

24、输入列表管理模块,用于识别起始作业,建立和修改输入列表;

25、目标时间生成模块,用于初始化设定目标时间,以及使用下游作业信息更新目标时间;

26、开始时间生成模块,用于依据目标时间生成输入作业的期望开始时间;

27、控制表管理模块,用于生成包含有期望开始时间的控制表;

28、作业调度模块,用于依据控制表调度作业运行。

29、本发明还涉及一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法。

30、本发明还涉及一种电子设备,其特征在于,包括处理器和存储器;

31、所述存储器,用于存储输入列表和控制表;

32、所述处理器,用于通过调用输入列表和控制表,执行上述的方法。

33、本发明还涉及一种计算机程序产品,包括计算机程序和/或指令,其特征在于,该计算机程序和/或指令被处理器执行时实现上述方法的步骤。

34、本发明的有益效果为:

35、采用本发明所述基于期望目标驱动的作业调度方法及系统,通过对高时效作业的预设期望完成时间目标为依据,获得相关上游作业的对应期望完成时间形成符合处理逻辑的作业完成时间目标链,使用户在建立作业调度时无需关注时效与优先级的关系、无需关注高时效作业的上游、无需专门为高时效作业配置独立队列,在保障高时效作业的前提下,简化高时效作业的配置要求。

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