本申请涉及计算机,尤其涉及一种分布式作业调度方法、装置、设备及存储介质。
背景技术:
1、目前,随着信息技术的发展,数据量呈现爆炸式的递增,致使许多计算机系统需要处理大量的数据。为解决计算机系统处理大量的数据的问题,计算机领域提出设置数量众多的执行器,并通过调度器,将数据处理作业进行分布式的调度给多个执行器,使计算机系统具备处理大量数据作业的能力。
2、相关技术中开发出用于计算机系统的作业调度引擎,如开源产品airflow,通过为每个待分配作业配置一个权重的策略实现作业调度,其中权重代表优先级,权重越高的作业将优先被分发到执行器执行时,该策略会考虑执行器的负载情况,并选择负载较低的执行器来执行作业,在一定程度上实现作业的负载均衡,避免将过多的作业分配给负载较高的执行器。
3、但是上述策略中权重无法体现待分配作业实际占用的资源情况,当多个作业同时要被分发到执行器时,由于不同的待分配作业占用的物理资源不同,并且调度器无法接收到作业实际资源占用情况以及调度器对执行器的负载变化存在滞后性,导致在大量作业进行分发时,调度器会将大量的耗资源型作业集中分发到某些集中的执行器中,使得数据作业的分配不均衡。
技术实现思路
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、本申请通过待分配作业的属性信息,确定相应的作业分发策略以及目标执行器,并实时获取执行器的负载变化以及作业实际资源占用情况,以此实现在大量作业进行分发时,调度器将作业平均分发到某些集中的执行器中,使得执行器的作业分配均衡。
1.一种分布式作业调度方法,其特征在于,所述分布式作业调度方法包括:
2.如权利要求1所述的分布式作业调度方法,其特征在于,所述获取待分配作业的属性信息的步骤,包括:
3.如权利要求1所述的分布式作业调度方法,其特征在于,所述属性信息包括程序运行稳定属性和程序运行不稳定属性,所述基于所述属性信息,确定作业分发策略的步骤,包括:
4.如权利要求1所述的分布式作业调度方法,其特征在于,所述目标执行器具体为执行器组下的各执行器,其中,当执行器组的资源不足以分配待分配作业时,向执行器组扩容执行器,以满足待分配作业的资源分配。
5.如权利要求1所述的分布式作业调度方法,其特征在于,所述获取所述目标执行器当前的资源负载信息,并基于待分配作业的所述资源占用信息、所述优先级信息以及目标执行器的所述资源负载信息,将所述待分配作业分发至相应目标执行器的步骤,包括:
6.如权利要求1所述的分布式作业调度方法,其特征在于,所述获取所述目标执行器当前的资源负载信息,并基于待分配作业的所述资源占用信息、所述优先级信息以及目标执行器的所述资源负载信息,将所述待分配作业分发至相应目标执行器的步骤,包括:
7.如权利要求6所述的分布式作业调度方法,其特征在于,所述基于目标执行器的所述硬件资源值和待分配作业的所述硬件资源占用值,按照所述分发顺序,将所述待分配作业分发至相应目标执行器的步骤,包括:
8.一种分布式作业调度装置,其特征在于,所述分布式作业调度装置包括:
9.一种分布式作业调度设备,其特征在于,所述分布式作业调度设备包括:存储器、处理器以及存储在存储器上的用于实现所述分布式作业调度方法的程序,
10.一种存储介质,其特征在于,所述存储介质上存储有实现分布式作业调度方法的程序,所述实现分布式作业调度方法的程序被处理器执行以实现如权利要求1至7中任一项所述分布式作业调度方法的步骤。