重跑任务调度方法、装置、计算机设备和存储介质与流程
未命名
10-22
阅读:62
评论:0
1.本技术涉及计算机技术领域,特别是涉及一种重跑任务调度方法、装置、计算机设备和存储介质。
背景技术:
2.在大数据平台中,数据的处理往往是在多个任务的运行下得以完成。在一些场景下,任务需要进行周期性的调度,而任务运行则需要足够的资源。在任务调度过程中,往往存在任务调度失败的情形。传统技术中,对于调度失败的任务,往往通过人工配置任务重跑机制,从而保障任务调度的成功。
3.然而,目前的重跑机制往往是配置任务的重跑次数和重跑时间间隔,重复性重跑失败的任务不仅会造成资源浪费,而且会影响其他任务的运行效率。
4.可见,目前的任务重跑机制仍存在重跑资源浪费、调度效率低的问题。
技术实现要素:
5.基于此,有必要针对上述技术问题,提供一种能够提高重跑任务调度效率、减少资源浪费的重跑任务调度方法、装置、计算机设备和计算机可读存储介质。
6.第一个方面,本实施例提供了一种重跑任务调度方法,所述方法包括:
7.获取当前资源队列中的多个待重跑任务;
8.获取多个所述待重跑任务的任务属性,所述任务属性包括任务节点、执行时长和调度周期;
9.基于所述任务节点以及预设任务节点树确定多个所述待重跑任务的第一优先级排序值;基于所述执行时长确定多个所述待重跑任务的第二优先级排序值;基于所述调度周期确定多个所述待重跑任务的第三优先级排序值;
10.基于多个所述待重跑任务的所述第一优先级排序值、所述第二优先级排序值以及所述第三优先级排序值,计算多个所述待重跑任务的三级优先值;
11.基于所述三级优先值对多个所述待重跑任务进行调度。
12.在其中一个实施例中,所述基于所述任务节点以及预设任务节点树确定多个所述待重跑任务的第一级优先级排序值包括:
13.确定所述任务节点在所述预设任务节点树中的层级参数;
14.基于所述层级参数确定多个所述待重跑任务的第一级优先级排序值。
15.在其中一个实施例中,所述基于所述三级优先值对多个所述待重跑任务进行调度包括:
16.获取所有资源队列的使用状态信息;
17.基于所述资源队列的使用状态信息确定所述资源队列的队列优先级排序值;
18.基于所述三级优先值与所述队列优先级排序值对多个所述待重跑任务进行调度。
19.在其中一个实施例中,所述基于所述资源队列的使用状态信息确定所述资源队列
的队列优先级排序值包括:
20.获取所有资源队列的使用状态信息,所述使用状态信息包括已用内存量、总内存量、已用核数和总核数;
21.基于所述已用内存量和总内存量确定内存空闲率;
22.基于所述已用核数和总核数确定内核空闲率;
23.基于所述内存空闲率和所述内核空闲率确定每个资源队列的空闲率;
24.基于所述资源队列的空闲率确定所述资源队列的队列优先级排序值。
25.在其中一个实施例中,所述获取当前资源队列中的多个待重跑任务包括:
26.获取当前资源队列的队列运行信息和所述资源队列中多个待筛选任务的任务运行信息;
27.将所述队列运行信息和任务运行信息特征化,得到数字特征;
28.将所述数字特征输入至预先训练好的任务分析模型,确定多个所述待重跑任务。
29.在其中一个实施例中,所述任务分析模型为逻辑回归模型,所述将所述数字特征输入至预先训练好的任务分析模型之前还包括:
30.获取预设时间内的任务运行日志;
31.提取所述任务运行日志中的任务标签、任务运行信息和队列运行信息,所述任务标签包括任务状态;
32.将所述任务运行信息和队列运行信息特征化得到数字特征;
33.基于所述数字特征和任务标签对所述逻辑回归模型进行训练,得到所述任务分析模型。
34.第二个方面,本实施例提供了一种重跑任务调度装置,所述装置包括:
35.任务获取模块,用于获取当前资源队列中的多个待重跑任务;
36.属性获取模块,用于获取多个所述待重跑任务的任务属性,所述任务属性包括任务节点、执行时长和调度周期;
37.属性排序模块,用于基于所述任务节点以及预设任务节点树确定多个所述待重跑任务的第一优先级排序值;基于所述执行时长确定多个所述待重跑任务的第二优先级排序值;基于所述调度周期确定多个所述待重跑任务的第三优先级排序值;
38.综合计算模块,用于基于多个所述待重跑任务的所述第一优先级排序值、所述第二优先级排序值以及所述第三优先级排序值,计算多个所述待重跑任务的三级优先值;
39.任务调度模块,用于基于所述三级优先值对多个所述待重跑任务进行调度。
40.第三个方面,本实施例提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如上述方法的步骤。
41.第四个方面,本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述方法的步骤。
42.上述重跑任务调度方法、装置、计算机设备和存储介质,通过获取当前资源队列中的多个待重跑任务;获取多个所述待重跑任务的任务属性,所述任务属性包括任务节点、执行时长和调度周期;基于所述任务节点以及预设任务节点树确定多个所述待重跑任务的第一优先级排序值;基于所述执行时长确定多个所述待重跑任务的第二优先级排序值;基于所述调度周期确定多个所述待重跑任务的第三优先级排序值;基于多个所述待重跑任务的
所述第一优先级排序值、所述第二优先级排序值以及所述第三优先级排序值,计算多个所述待重跑任务的三级优先值;基于所述三级优先值对多个所述待重跑任务进行调度,可以基于任务的执行逻辑进行重新调度,从而减少重复性的重跑任务造成的资源浪费,达到提高调度效率的效果;通过依照任务节点、执行时长和调度周期依次计算优先级排序值,并得到三级优先值,可以实现更为合理化的待重跑任务优先级排序,达到提高待重跑任务调度效率的效果。
附图说明
43.图1为一个实施例中重跑任务调度方法的应用环境图;
44.图2为一个实施例中重跑任务调度方法的流程示意图;
45.图3为一个实施例中任务血缘关系树的示意图
46.图4为一个实施例中重跑任务调度装置的结构框图;
47.图5为一个实施例中计算机设备的内部结构图。
具体实施方式
48.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
49.本技术实施例提供的重跑任务调度方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。终端102获取当前资源队列中的多个待重跑任务,待重跑任务和资源队列可以是运行于服务器104中,也可以是运行于终端102内;获取多个所述待重跑任务的任务属性,任务属性可以是存储于数据存储系统中,也可以是从待重跑任务的任务信息中提取;基于所述任务节点以及预设任务节点树确定多个所述待重跑任务的第一优先级排序值;基于所述执行时长确定多个所述待重跑任务的第二优先级排序值;基于所述调度周期确定多个所述待重跑任务的第三优先级排序值;基于多个所述待重跑任务的所述第一优先级排序值、所述第二优先级排序值以及所述第三优先级排序值,计算多个所述待重跑任务的三级优先值;基于三级优先值对多个待重跑任务进行调度。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
50.在一个实施例中,如图2所示,提供了一种重跑任务调度方法,以该方法应用于图1中的终端102为例进行说明,包括以下步骤:
51.步骤s100,获取当前资源队列中的多个待重跑任务。
52.其中,资源队列可以是对资源进行逐次调用的任务队列,可以是通过先进先出的原则对任务进行排序,最先进队列的任务出队列并获得资源的使用权。
53.待重跑任务可以是基于运行时间超过预设阈值的运行中任务确定,也可以是基于资源队列中的待调用任务的任务信息进行分析确定,还可以是其他基于实际需要确定资源
队列中的待重跑任务,本文对此不做限定。
54.获取当前资源队列中的多个待重跑任务,可以是获取单个资源队列中的多个待重跑任务,也可以是获取多个资源队列中的待重跑任务,还可以是获取多个资源队列中的多个待重跑任务,本文对此不作限定。
55.步骤s200,获取多个所述待重跑任务的任务属性,所述任务属性包括任务节点、执行时长和调度周期。
56.其中,任务属性可以是存储于资源队列中,可以是对所获取的待重跑任务进行任务属性的提取得到,也可以是存储于如图1所示的数据存储系统或终端102中,本文对此不作限定。
57.任务节点可以是待重跑任务在存在关联的任务系列中的节点。可以理解的是,多个任务之间可能存在先后关系,需要前置任务运行完毕后才可以运行后置任务,任务节点即可以是在此类先后关系中的节点。
58.执行时长可以是待重跑任务的预设运行时长,也可以是待重跑任务当前的已运行时长,还可以是待重跑任务超出预设运行时长的运行时长,该预设运行时长可以是基于资源队列统一设置,也可以是基于待重跑任务进行单独设置,还可以是其他直接或间接表示待重跑任务的运行时长的信息,本文对此不作限定。
59.调度周期可以是待重跑任务重复调度的间隔周期,例如一个待重跑任务可以是以一个小时作为重新调度,该一个小时的间隔周期即为调度周期;调度周期也可以是待重跑任务的调度频率,即在预设时间内调度该任务的次数,例如,一个待重跑任务可以是在一天内重复调度三次,即为调度周期。可以理解的是,预设时间内调度任务的次数,每一次调度的时间间隔可以是均匀分布的,也可以是在指定时间点进行,例如一天内重复调度多次,该多次调度可以集中于每日的12点至24点进行多次调度。调度周期还可以是其他直接或间接表示待重跑任务重复调度时间的信息,本文对此不作限定。
60.步骤s300,基于所述任务节点以及预设任务节点树确定多个所述待重跑任务的第一优先级排序值;基于所述执行时长确定多个所述待重跑任务的第二优先级排序值;基于所述调度周期确定多个所述待重跑任务的第三优先级排序值。
61.其中,三级优先值可以是分为三个层次的优先级排序值,可以包括对上一层次优先级排序值中相同优先级的任务进行下一层次的优先级排序值。
62.优先级排序值可以是通过对待重跑任务赋以不同权重,其权重即代表了该任务的优先级。
63.基于任务节点以及预设任务节点树确定多个所述待重跑任务的第一优先级排序值,可以是根据任务节点将待重跑任务输入至预设任务节点树,并基于预设任务节点树上确定各待重跑任务的第一优先级排序值。可以理解的是,经过输入的预设任务节点树表示各待重跑任务的依次执行的顺序关系,从而通过该顺序关系确定各任务的优先级排序值。在一个具体实施例中,可以根据预设节点树中的串行任务确定依次执行的顺序关系,若存在并行任务,则可以视为优先级相同,或可以根据该任务后所需执行的任务数量确定优先级顺序。
64.基于执行时长确定优先级排序值,可以是根据执行时长的长短进行优先级排序值,可以是根据执行时长由长到短进行升序或降序的排序值,升序或降序的选择可以是操
作人员基于实际需求进行设置。例如,若需要对执行时长较长的任务进行先行处理,则可以根据执行时长由长到短设置从先而后的排序值。在一个具体实施例中,执行时长为延迟时长,即待重跑任务超出预设运行时长的运行时长,延迟时长越长,则设置越高的优先级,延迟时间越短,则设置越低的优先级。
65.基于调度周期确定优先级排序值,可以是根据待重跑任务重复调度的间隔周期进行排序值,例如,可以是根据各待重跑任务重复调度的间隔时间由短到长进行优先级由高到底的排序值;还可以是根据待重跑任务的调度频率进行排序值,例如可以是根据调度频率由高到低进行优先级由高到低的排序值。还可以是其他根据调度周期直接或间接进行排序值的方式,本文对此不作限定。
66.步骤s400,基于多个所述待重跑任务的所述第一优先级排序值、所述第二优先级排序值以及所述第三优先级排序值,计算多个所述待重跑任务的三级优先值。
67.其中,基于所述第一优先级排序值、第二优先级排序值以及第三优先级排序值,计算多个所述待重跑任务的三级优先值,可以是基于下一级优先级排序对上一级优先级排序中优先级相同的待重跑任务进行调整。
68.进一步的,下一级优先级排序值的最大值,可以是以上一级优先级排序值的单位值为限,即,下一级优先级排序值的调整范围可以是仅限于上一级优先级排序值中排序值相同的待重跑任务。
69.步骤s500,基于所述三级优先值对多个所述待重跑任务进行调度。
70.其中,基于三级优先值对多个所述待重跑任务进行调度,可以是基于三级优先值中待重跑任务的顺序依次进行调度。此外,将三级优先值中的多个待重跑任务进行调度,还可以包括逐个将待重跑任务与多个资源队列进行匹配调度。
71.本实施例提供的一种重跑任务调度方法,通过获取当前资源队列中的多个待重跑任务;获取多个所述待重跑任务的任务属性,所述任务属性包括任务节点、执行时长和调度周期;基于所述任务节点以及预设任务节点树确定多个所述待重跑任务的第一优先级排序值;基于所述执行时长确定多个所述待重跑任务的第二优先级排序值;基于所述调度周期确定多个所述待重跑任务的第三优先级排序值;基于多个所述待重跑任务的所述第一优先级排序值、所述第二优先级排序值以及所述第三优先级排序值,计算多个所述待重跑任务的三级优先值;;基于所述三级优先值对多个所述待重跑任务进行调度,可以基于任务的执行逻辑进行重新调度,从而减少重复性的重跑任务造成的资源浪费,达到提高调度效率的效果;通过依照任务节点、执行时长和调度周期依次计算优先级排序值,并得到三级优先值,可以实现更为合理化的待重跑任务优先级排序,达到提高待重跑任务调度效率的效果。
72.在其中一个实施例中,所述基于所述任务节点以及预设任务节点树确定多个所述待重跑任务的第一级优先级排序值包括:
73.确定所述任务节点在所述预设任务节点树中的层级参数;
74.基于所述层级参数确定多个所述待重跑任务的第一级优先级排序值。
75.其中,预设任务节点树可以是预先生成的任务节点树模板,通过任务节点确定待重跑任务之间的关联执行关系,并将待重跑任务填入到该预设任务节点树中,可以得到当前任务节点树。
76.层级参数是指待重跑任务在预设任务节点树中的层级位置,可以是自下而上累计
计算待重跑任务的后置任务数量作为层级参数,也可以是自上而下确定待重跑任务的前置任务数量作为层级参数。
77.基于所述层级参数确定多个所述待重跑任务的第一级优先级排序值,即根据层级参数对待重跑任务赋予权重值,若层级参数为待重跑任务的前置任务数量,则可以是以前置任务数量由小到大,进行优先级由高到底的排序并赋予权重值;若层级参数为待重跑任务的后置任务数量,则可以是以前置任务数量由大到小,进行优先级由高到底的排序并赋予权重值。其中,后置任务数量可以是取当前任务节点后包括并行任务在内的所有任务数量,也可以是取后置串行任务节点中的最大任务数量,例如,在任务a运行完毕后可运行任务b和任务c,任务b共有5个后置串行任务,而任务c则共有3个后置串行任务,则任务a的后置任务数量可以为其后所有任务数量共10个;也可以是取最大任务数量,即仅取任务b及其后置串行任务,得到后置任务数量为6个。可以理解的是,将层级参数设置为后置任务数量,当后置任务数量越高,则代表越多的任务需要在当前任务完成后才能运行,则可相应赋予越高的权重值作为第一优先级排序值。
78.本实施例提供的一种重跑任务调度方法,通过任务节点和预设任务节点树确定层级参数,基于层级参数确定第一级优先级排序值,可以实现基于任务节点对第一级优先级排序值进行确定,可以达到提高重跑任务调度合理性和提高调度效率的效果。
79.在其中一个实施例中,所述基于所述三级优先值对多个所述待重跑任务进行调度包括:
80.获取所有资源队列的使用状态信息;
81.基于所述资源队列的使用状态信息确定所述资源队列的队列优先级排序值;
82.基于所述三级优先值与所述队列优先级排序值对多个所述待重跑任务进行调度。
83.可以理解的是,资源队列可以存在多个,基于所述三级优先值与所述队列优先级排序值对多个所述待重跑任务进行调度,可以是基于三级优先值所排序的多个待重跑任务依次与多个资源队列进行匹配调度。
84.使用状态信息可以是当前资源队列的资源使用信息,可以包括队列运行时间、空闲率等。基于使用状态信息确定资源队列的队列优先级排序值,可以是根据资源队列的空闲率对各资源队列进行优先级排序值。
85.基于所述三级优先值与所述队列优先级排序值对多个所述待重跑任务进行调度,可以是基于三级优先值所排序的多个待重跑任务依次与基于队列优先级排序值所排序的资源队列进行匹配调度,可以是将多个待重跑任务与多个资源队列一一对应进行调度,也可以是依次向单个资源队列分配多个待重跑任务,还可以是在单个待重跑任务匹配调度后,重新根据当前所有资源队列的使用状态信息重新确定队列优先级排序值并进行匹配,还可以是其他任务序列与队列序列的匹配方式,本文对此不作限定。
86.本实施例提供的一种重跑任务调度方法,通过获取所有资源队列的使用状态信息,基于所述资源队列的使用状态信息确定所述资源队列的队列优先级排序值,基于所述三级优先值与所述队列优先级排序值对多个所述待重跑任务进行调度,可以实现结合资源队列的使用情况进行相应的任务调度,从而进一步减少资源浪费,达到提高任务调度效率和减少运行成本的效果。
87.在其中一个实施例中,所述基于所述资源队列的使用状态信息确定所述资源队列
的队列优先级排序值包括:
88.获取所有资源队列的使用状态信息,所述使用状态信息包括已用内存量、总内存量、已用核数和总核数;
89.基于所述已用内存量和总内存量确定内存空闲率;
90.基于所述已用核数和总核数确定内核空闲率;
91.基于所述内存空闲率和所述内核空闲率确定每个资源队列的空闲率;
92.基于所述资源队列的空闲率确定所述资源队列的队列优先级排序值。
93.其中,基于已用内存量和总内存量确定内存空闲率,可以是计算已用内存量与总内存量的比值得到内存空闲率;相应的,基于已用核数和总核数确定内核空闲率,可以是计算已用核数与总核数的比值确定内核空闲率,其中,总核数可以是处理器的总内核数量,已用核数可以是处理器的已用内核数量。
94.基于所述内存空闲率和所述内核空闲率确定每个资源队列的空闲率,可以是对内存空闲率和内核空闲率以求和或取平均值的方式计算得到,还可以是基于实际需要,分别对内存空闲率和内核空闲率赋权值计算得到。
95.除了基于空闲率确定资源队列的队列优先级排序值之外,还可以是基于已用内存量和总内存量确定空闲内存量,基于空闲内存量确定队列优先级排序值,还可以是基于使用状态信息中其他的一个或多个参数确定优先级排序值,本文对此不作限定。
96.本实施例提供的一种重跑任务调度方法,通过基于使用状态信息确定资源队列的内存空闲率和内核空闲率,基于内存空闲率和内核空闲率确定资源队列的空闲率以计算队列优先级排序值,可以实现当前状态下的资源合理配置,从而在调度任务的过程中提高任务运行成功的可能性,减少资源浪费的情况发生,达到提高任务调度效率以及减少运行成本的效果。
97.在其中一个实施例中,所述获取当前资源队列中的多个待重跑任务包括:
98.获取当前资源队列的队列运行信息和所述资源队列中多个待筛选任务的任务运行信息;
99.将所述队列运行信息和任务运行信息特征化,得到数字特征;
100.将所述数字特征输入至预先训练好的任务分析模型,确定多个所述待重跑任务。
101.其中,队列运行信息可以包括资源队列的使用状态信息,例如已用内存量、总内存量、已用核数、总核数等,基于上述信息还可以生成内存使用率、内存空闲率、内核使用率、内核空闲率等信息;队列运行信息还可以包括资源队列编号、任务调度编号、设备硬件序列号等相应的运行信息,还可以包括其他资源队列运行所涉及的信息,本文对此不作限定。
102.任务运行信息可以包括任务的调度周期、调度频次、任务计划开始时间、任务实际开始时间、任务计划结束时间、任务状态等,其中,任务状态可以包括运行中、就绪、失败和重跑等。此外,任务运行信息还可以包括重跑次数、重跑间隔时间、原因类型等。
103.将队列运行信息和任务运行信息特征化,得到数字特征,可以是通过词向量模型或文本表示模型等模型将上述信息转换为向量表示,还可以是其他将信息进行特征化的方式,本文对此不作限定。
104.任务分析模型可以是基于机器学习模型预先训练得到的,可以是通过人工筛选和基于任务状态筛选得到训练集数据,该训练集数据可以包括任务状态在运行中、就绪、失败
和重跑下的任务,以及其所对应的任务运行信息和对应的资源队列信息;将该队列运行信息和使用状态信息进行特征化得到数字特征,将该数字特征和结果标签输入至机器学习模型中进行训练,得到任务分析模型,其中,结果标签可以包括任务状态以及是否需要重跑的判断结果。相应的,将所述数字特征输入至预先训练好的任务分析模型,确定多个所述待重跑任务,可以是基于任务分析模型输出的判断结果确定是否将该任务作为待重跑任务,从而确定多个待重跑任务。
105.本实施例提供的一种重跑任务调度方法,通过对任务和资源队列进行特征化得到数字特征,并通过机器学习模型实现待重跑任务的判断,可以实现将可能存在资源浪费、运行失败或需要重跑的任务确定为待重跑任务以重新调度,从而减少任务长时间运行或重复多次运行造成资源队列阻塞,进而减少资源浪费的情况发生,达到提高任务运行效率和减少运行成本的效果。
106.在其中一个实施例中,所述任务分析模型为逻辑回归模型,所述将所述数字特征输入至预先训练好的任务分析模型之前还包括:
107.获取预设时间内的任务运行日志;
108.提取所述任务运行日志中的任务标签、任务运行信息和队列运行信息,所述任务标签包括任务状态;
109.将所述任务运行信息和队列运行信息特征化得到数字特征;
110.基于所述数字特征和任务标签对所述逻辑回归模型进行训练,得到所述任务分析模型。
111.其中,逻辑回归模型是一种广义的线性回归分析模型,属于监督学习模型的一种,主要用于解决二分类的问题,通过给定的多组数据训练模型,并在训练结束后对给定的一组或多组数据进行分类。
112.任务运行日志包括所运行过的任务以及相应的任务运行信息和队列运行信息,任务标签即任务是否运行成功的结果标签。
113.将所述任务运行信息和队列运行信息特征化得到数字特征,可以是提取任务运行信息和队列运行信息中的特征,并将这些特征进行合并和归一化处理。在一个具体实施例中,可以采用零均值归一化处理,具体标准差标准化处理,将上述特征进行归一化到0至1的范围内。
114.基于所述数字特征和任务标签对所述逻辑回归模型进行训练,得到所述任务分析模型,在一个具体实施例中,可以是将数字特征标记为x,将结果标签设为y,结果标签包括任务是否需要重跑的判断结果,通过逻辑回归训练出x和y之间的线性关系,得到训练后的矩阵权重,从而得到任务分析模型。
115.本实施例提供的一种重跑任务调度方法,通过采用逻辑回归模型训练得到任务分析模型,可以基于数字特征和标签结果得到二分类的判断结果,所需的计算量较小,且能够达到较好的任务结果识别效果,可以达到提高待重跑任务筛选准确率的效果。
116.为了更清楚地阐述本技术的技术方案,本技术还提供了一个详细实施例。
117.本实施例提供了一种重跑任务调度方法,包括:
118.基于逻辑回归模型训练得到回归激活函数,即任务分析模型。首先,获取近一年任务运行的日志,提炼出待重跑任务和任务运行成功的必要信息,即任务运行信息,同时获取
待重跑任务和任务运行成功的对应资源队列信息,即队列运行信息。继而提取任务和资源队列的数字特征。待重跑任务和任务运行成功的必要信息可以包括:任务调度周期,任务调度频次,任务计划开始时间,任务实际开始时间,任务时间结束时间,任务状态,重跑次数,重跑间隔时间,原因类型,任务运行时间占比,任务执行延迟时长中的一种或多种。其中,任务状态可以包括运行中,就绪,失败和重跑等。
119.待重跑任务和任务运行成功的对应资源队列信息可以包括:资源队列编号,已用内存量,总内存量,剩余内存量,总核数,已用核数,剩余核数,内存使用率,内存空闲率,内核使用率,内核空闲率,任务调度编号中的一种或多种。
120.提取任务运行信息和队列运行信息的数字特征,进行合并和归一化处理。其中,可以是使用零均值归一化处理,具体标准差标准化处理,将任务和资源队列的数字特征进行归一化到0至1的范围。具体公式如下:
[0121][0122]
其中,μ为原始数据的均值,δ为原始数据的标准差,x表示需要归一化的输入值,x’为归一化后的数字特征。
[0123]
得到数字特征后,使用逻辑回归模型训练任务与资源队列以及任务运行状态的线性关系。其中,将任务和资源队列数字特征标记为x,将任务需要重跑、或运行成功的结果作为任务的结果标签,设为y。通过逻辑回归模型训练出x和y之间的线性关系,得到一组矩阵权重,将其标注为w。由此可以得到一个线性函数,记为回归激活函数,即任务分析模型。通过该函数可以对任务进行分类,从而是否需要重跑。该激活函数可以将数据映射成0至1之间的数据,激活函数具体如下:
[0124][0125]
其中,xj为训练集中的第i个数据,即为p维列向量w为p维列向量w=(w
1 w2...w
p
)
t
,即待求参数;b也为待求参数。对于w
t
x+b,其结果是w1w1+w2w2+...+w
pwp
+b。把w写为(w
1 w
2 ... w
p b)
t
,把xi写为,则w
t
x+b可以写为w
t
x,则:
[0126][0127]
由此,可以把另一个参数b合并至w中,并根据训练样本计算参数w。
[0128]
在训练得到回归激活函数后,进一步可以选择待重跑任务,包括:选择当前的任务状态为失败、运行中以及就绪的任务,提取计算任务和资源队列的数字特征,并基于数字特征和回归激活函数判断这一批任务中需要重跑的任务作为待重跑任务。
[0129]
筛选出待重跑任务后,对待重跑任务和资源队列进行优先级排序。
[0130]
待重跑任务的优先级包括三级优先级排序,分别包括任务血缘权重优先级、延迟时间权重优先级以及调度周期权重优先级。其中,任务血缘权重优先级高于延迟时间权重优先级,延迟时间权重优先级高于调度周期权重优先级。只有在任务血缘权重优先级相同时再考虑延迟时间权重优先级,在延迟时间权重优先级相同时才考虑调度周期权重优先级。
[0131]
三级优先级排序的设置可以是通过权重系数k进行定义,其中,任务血缘的权重k=3,延迟时间的权重k=2,调度周期的权重k=1。
[0132]
任务血缘权重优先级指任务在进行etl过程中任务之间是有依赖执行关系,只有前面的任务执行运行成功,后面任务才能开始执行。先执行的任务设置高优先级数字,后执行的任务设置低优先级的数字。
[0133]
如图3所示为本实施例中的任务血缘关系数,即任务节点树的示意图,其中,a,b,c,d表示具体的任务,任务之间是有先后血缘关系,例如只有a任务运行后b任务才能运行,b任务运行后d任务才能运行。如果待重跑的任务都是a,b,d。那么需要设置a任务权重优先级高于b任务权重优先级高于d任务权重优先级。在任务血缘关系树中的任务个数为n,遍历任务血缘关系树,给具体重跑任务赋权重。如图3所示,a的任务血缘权重值xa为n,b的任务血缘权重值xb为n-1等等,根据任务血缘图进行树先序遍历依次给重跑任务赋权重,可以得到xi的值,其中i是任务血缘中任务的重跑任务个数。
[0134]
延迟时间是指待重跑任务运行任务的延迟执行时长,即实际结束时间或当前运行时间与计划执行时间的时长差值,延迟执行时长越长,则设置越高的优先级,延迟执行时长越短,则设置越低的优先级。在另一个实施例中,还可以是设置待重跑任务的延迟时间权重为t,则每个待重跑任务的延迟时间为ti,重跑任务开始运行时间或当前运行时间为td,重跑任务计划开始时间设置为ts,则延迟时间ti=t
d-ts。
[0135]
调度周期权重优先级是指任务的重复调度间隔周期,其中,任务调度周期越短则设置越高的优先级,反之则设置越低的优先级,例如,小时级的调度周期的任务优先级高于天级的调度周期的优先级。在一个具体实施例中,设置调度周期权重为d,重跑任务的调度周期为hi。将天级别的调度周期换算为小时级,即由一天的周期换算为二十四小时。调度周期的权重值为di=100/hi,其中,hi的调度周期越小,di的值就越大。
[0136]
在得到三个权重优先级后,可以计算得到三级优先级权重值yi=∑k*(xi+ti+di)。
[0137]
资源队列的优先级排序包括内存空闲率和内核空闲率,其中,内存空闲率和内核空闲率越高,则优先级越高,反之则越低。
[0138]
设资源队列空闲率为ri,内存空闲率为si,已用内存量为ui,总内存量为zi,那么si=ui/zi;内核空闲率为mi,已用核数为cui,总核数为ci,那么mi=cui/ci。最终的资源队列空闲率的计算函数为ri=∑(ui/zi+cui/ci)。
[0139]
进一步的,可以根据任务与资源队列设置的优先级进行动态匹配,选取权重最高的数字对应的任务动态匹配资源队列权重最高的数字所对应的资源队列,从而达到待重跑任务与资源队列的动态匹配,使资源队列得到充分利用和待重跑任务的及时运行成功。
[0140]
本实施例提供的一种重跑任务调度方法,通过基于待重跑任务的任务属性进行三级的优先级排序,可以实现基于任务的执行逻辑的重新调度,从而减少重复性任务重跑造成的资源浪费,达到提高调度效率的效果;通过依照任务节点、执行时长和调度周期依次计算三级的优先级排序值,可以实现更为合理化的待重跑任务优先级排序;通过获取所有资源队列的使用状态信息,基于所述资源队列的使用状态信息确定所述资源队列的队列优先级排序值,基于所述三级优先值与所述队列优先级排序值对多个所述待重跑任务进行调度,可以实现结合资源队列的使用情况进行相应的任务调度,从而进一步减少资源浪费;通过基于使用状态信息确定资源队列的内存空闲率和内核空闲率,基于内存空闲率和内核空
闲率确定资源队列的空闲率以计算队列优先级排序值,可以实现当前状态下的资源合理配置,从而在调度任务的过程中提高任务运行成功的可能性;通过对任务和资源队列进行特征化得到数字特征,并通过逻辑回归模型实现待重跑任务的判断,可以减少任务长时间运行或重复多次运行造成资源队列阻塞,减少资源浪费的情况发生,达到提高待重跑任务调度效率的效果。
[0141]
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
[0142]
基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的重跑任务调度方法的重跑任务调度装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个重跑任务调度装置实施例中的具体限定可以参见上文中对于重跑任务调度方法的限定,在此不再赘述。
[0143]
在一个实施例中,如图4所示,提供了一种重跑任务调度装置,包括:任务获取模块100、属性获取模块200、属性排序模块300、综合计算模块400和任务调度模块500,其中:
[0144]
任务获取模块100,用于获取当前资源队列中的多个待重跑任务;
[0145]
属性获取模块200,用于获取多个所述待重跑任务的任务属性,所述任务属性包括任务节点、执行时长和调度周期;
[0146]
属性排序模块300,用于基于所述任务节点以及预设任务节点树确定多个所述待重跑任务的第一优先级排序值;基于所述执行时长确定多个所述待重跑任务的第二优先级排序值;基于所述调度周期确定多个所述待重跑任务的第三优先级排序值;
[0147]
综合计算模块400,用于基于多个所述待重跑任务的所述第一优先级排序值、所述第二优先级排序值以及所述第三优先级排序值,计算多个所述待重跑任务的三级优先值;
[0148]
任务调度模块500,用于基于所述三级优先值对多个所述待重跑任务进行调度。
[0149]
在其中一个实施例中,所述属性排序模块300还用于:确定所述任务节点在所述预设任务节点树中的层级参数;基于所述层级参数确定多个所述待重跑任务的第一级优先级排序值。
[0150]
在其中一个实施例中,所述任务调度模块500还用于:获取所有资源队列的使用状态信息;基于所述资源队列的使用状态信息确定所述资源队列的队列优先级排序值;基于所述三级优先值与所述队列优先级排序值对多个所述待重跑任务进行调度。
[0151]
在其中一个实施例中,所述任务调度模块500还用于:获取所有资源队列的使用状态信息,所述使用状态信息包括已用内存量、总内存量、已用核数和总核数;基于所述已用内存量和总内存量确定内存空闲率;基于所述已用核数和总核数确定内核空闲率;基于所述内存空闲率和所述内核空闲率确定每个资源队列的空闲率;基于所述资源队列的空闲率确定所述资源队列的队列优先级排序值。
[0152]
在其中一个实施例中,所述任务获取模块100还用于:获取当前资源队列的队列运
行信息和所述资源队列中多个待筛选任务的任务运行信息;将所述队列运行信息和任务运行信息特征化,得到数字特征;将所述数字特征输入至预先训练好的任务分析模型,确定多个所述待重跑任务。
[0153]
在其中一个实施例中,所述任务分析模型为逻辑回归模型,所述装置还包括模型训练模块,所述模型训练模块用于:获取预设时间内的任务运行日志;提取所述任务运行日志中的任务标签、任务运行信息和队列运行信息,所述任务标签包括任务状态;将所述任务运行信息和队列运行信息特征化得到数字特征;基于所述数字特征和任务标签对所述逻辑回归模型进行训练,得到所述任务分析模型。
[0154]
上述重跑任务调度装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0155]
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过wifi、移动蜂窝网络、nfc(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种重跑任务调度方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
[0156]
本领域技术人员可以理解,图5中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0157]
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
[0158]
获取当前资源队列中的多个待重跑任务;
[0159]
获取多个所述待重跑任务的任务属性,所述任务属性包括任务节点、执行时长和调度周期;
[0160]
基于所述任务节点以及预设任务节点树确定多个所述待重跑任务的第一优先级排序值;基于所述执行时长确定多个所述待重跑任务的第二优先级排序值;基于所述调度周期确定多个所述待重跑任务的第三优先级排序值;
[0161]
基于多个所述待重跑任务的所述第一优先级排序值、所述第二优先级排序值以及所述第三优先级排序值,计算多个所述待重跑任务的三级优先值;
[0162]
基于所述三级优先值对多个所述待重跑任务进行调度。
[0163]
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
[0164]
获取当前资源队列中的多个待重跑任务;
[0165]
获取多个所述待重跑任务的任务属性,所述任务属性包括任务节点、执行时长和
调度周期;
[0166]
基于所述任务节点以及预设任务节点树确定多个所述待重跑任务的第一优先级排序值;基于所述执行时长确定多个所述待重跑任务的第二优先级排序值;基于所述调度周期确定多个所述待重跑任务的第三优先级排序值;
[0167]
基于多个所述待重跑任务的所述第一优先级排序值、所述第二优先级排序值以及所述第三优先级排序值,计算多个所述待重跑任务的三级优先值;
[0168]
基于所述三级优先值对多个所述待重跑任务进行调度。
[0169]
需要说明的是,本技术所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
[0170]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(reram)、磁变存储器(magnetoresistive random access memory,mram)、铁电存储器(ferroelectric random access memory,fram)、相变存储器(phase change memory,pcm)、石墨烯存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器等。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
[0171]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0172]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。
技术特征:
1.一种重跑任务调度方法,其特征在于,所述方法包括:获取当前资源队列中的多个待重跑任务;获取多个所述待重跑任务的任务属性,所述任务属性包括任务节点、执行时长和调度周期;基于所述任务节点以及预设任务节点树确定多个所述待重跑任务的第一优先级排序值;基于所述执行时长确定多个所述待重跑任务的第二优先级排序值;基于所述调度周期确定多个所述待重跑任务的第三优先级排序值;基于多个所述待重跑任务的所述第一优先级排序值、所述第二优先级排序值以及所述第三优先级排序值,计算多个所述待重跑任务的三级优先值;基于所述三级优先值对多个所述待重跑任务进行调度。2.根据权利要求1所述的重跑任务调度方法,其特征在于,所述基于所述任务节点以及预设任务节点树确定多个所述待重跑任务的第一优先级排序值包括:确定所述任务节点在所述预设任务节点树中的层级参数;基于所述层级参数确定多个所述待重跑任务的第一优先级排序值。3.根据权利要求1所述的重跑任务调度方法,其特征在于,所述基于所述三级优先值对多个所述待重跑任务进行调度包括:获取所有资源队列的使用状态信息;基于所述资源队列的使用状态信息确定所述资源队列的队列优先级排序值;基于所述三级优先值与所述队列优先级排序值对多个所述待重跑任务进行调度。4.根据权利要求3所述的重跑任务调度方法,其特征在于,所述基于所述资源队列的使用状态信息确定所述资源队列的队列优先级排序值包括:获取所有资源队列的使用状态信息,所述使用状态信息包括已用内存量、总内存量、已用核数和总核数;基于所述已用内存量和总内存量确定内存空闲率;基于所述已用核数和总核数确定内核空闲率;基于所述内存空闲率和所述内核空闲率确定每个资源队列的空闲率;基于所述资源队列的空闲率确定所述资源队列的队列优先级排序值。5.根据权利要求1所述的重跑任务调度方法,其特征在于,所述获取当前资源队列中的多个待重跑任务包括:获取当前资源队列的队列运行信息和所述资源队列中多个待筛选任务的任务运行信息;将所述队列运行信息和任务运行信息特征化,得到数字特征;将所述数字特征输入至预先训练好的任务分析模型,确定多个所述待重跑任务。6.根据权利要求5所述的重跑任务调度方法,其特征在于,所述任务分析模型为逻辑回归模型,所述将所述数字特征输入至预先训练好的任务分析模型之前还包括:获取预设时间内的任务运行日志;提取所述任务运行日志中的任务标签、任务运行信息和队列运行信息,所述任务标签包括任务状态;将所述任务运行信息和队列运行信息特征化得到数字特征;
基于所述数字特征和任务标签对所述逻辑回归模型进行训练,得到所述任务分析模型。7.一种重跑任务调度装置,其特征在于,所述装置包括:任务获取模块,用于获取当前资源队列中的多个待重跑任务;属性获取模块,用于获取多个所述待重跑任务的任务属性,所述任务属性包括任务节点、执行时长和调度周期;属性排序模块,用于基于所述任务节点以及预设任务节点树确定多个所述待重跑任务的第一优先级排序值;基于所述执行时长确定多个所述待重跑任务的第二优先级排序值;基于所述调度周期确定多个所述待重跑任务的第三优先级排序值;综合计算模块,用于基于多个所述待重跑任务的所述第一优先级排序值、所述第二优先级排序值以及所述第三优先级排序值,计算多个所述待重跑任务的三级优先值;任务调度模块,用于基于所述三级优先值对多个所述待重跑任务进行调度。8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至权利要求6中任一项所述的方法的步骤。9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至权利要求6中任一项所述的方法的步骤。
技术总结
本申请涉及一种重跑任务调度方法、装置、计算机设备和存储介质。该方法包括:通过获取当前资源队列中的多个待重跑任务;获取多个所述待重跑任务的任务属性,所述任务属性包括任务节点、执行时长和调度周期;基于所述任务节点以及预设任务节点树确定多个所述待重跑任务的第一优先级排序值;基于所述执行时长确定多个所述待重跑任务的第二优先级排序值;基于所述调度周期确定多个所述待重跑任务的第三优先级排序值;基于多个所述待重跑任务的所述第一优先级排序值、所述第二优先级排序值以及所述第三优先级排序值,计算多个所述待重跑任务的三级优先值;基于所述三级优先值对多个所述待重跑任务进行调度。采用该方法能达到提高调度效率的效果。调度效率的效果。调度效率的效果。
技术研发人员:盛柏森 马千里 朱康康 高展 王超 张岩 杭承政 蔡益平
受保护的技术使用者:浙江海亮科技有限公司
技术研发日:2023.06.28
技术公布日:2023/10/19
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/