CN117311937A - 一种分布式任务调度方法、装置、电子设备及存储介质 - Google Patents
一种分布式任务调度方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117311937A CN117311937A CN202311271311.7A CN202311271311A CN117311937A CN 117311937 A CN117311937 A CN 117311937A CN 202311271311 A CN202311271311 A CN 202311271311A CN 117311937 A CN117311937 A CN 117311937A
- Authority
- CN
- China
- Prior art keywords
- task
- scheduled
- server
- dag model
- scheduling
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 95
- 230000000007 visual effect Effects 0.000 claims abstract description 21
- 238000004422 calculation algorithm Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 16
- 238000012544 monitoring process Methods 0.000 claims description 11
- 238000005457 optimization Methods 0.000 claims description 9
- 238000010276 construction Methods 0.000 claims description 2
- 238000000354 decomposition reaction Methods 0.000 claims description 2
- 238000012545 processing Methods 0.000 abstract description 12
- 230000006870 function Effects 0.000 description 15
- 230000008569 process Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 10
- 238000009434 installation Methods 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 7
- 238000013515 script Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000009472 formulation Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 244000101724 Apium graveolens Dulce Group Species 0.000 description 1
- 235000015849 Apium graveolens Dulce Group Nutrition 0.000 description 1
- 235000010591 Appio Nutrition 0.000 description 1
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请公开了一种分布式任务调度方法、装置、电子设备及存储介质;该方法包括:数据中台接收用户在可视化显示界面的任务类型中通过拖动操作所添加的待调度任务相关的信息;根据待调度任务相关的信息,构建待调度任务对应的DAG模型;将DAG模型发送至任务调度集群中的主服务器,使得主服务器基于DAG模型将待调度任务分解为多个子任务,并将各个子任务分别提交至任务调度集群中对应的工作服务器,由工作服务器对接收到的子任务进行调度。本申请实施例可以在任务流转环节多,系统协作关系复杂,任务依赖性强的情况下,实现高效的任务调度,从而可以提升数据利用率、保障任务稳定性、提高任务灵活性。本申请可应用于工业互联网平台,从而能更好地处理大规模数据处理任务。
Description
技术领域
本申请实施例涉及大数据技术领域,尤其涉及一种分布式任务调度方法、装置、电子设备及存储介质。
背景技术
在大数据时代,随着企业体量的增大,业务多元化的发展,企业内部大数据应用的需求不断增强,数据已经成为了企业的核心资产。同时,企业数字化转型带来的效率提高、成本降低、竞争获利等优点也推动了数据中台的普及。而大数据任务调度系统负责数据领域所有上线任务的编排调度,是数据中台的重要组成部分。任务调度可以保证数据中台的各个模块和组件能够按照一定的顺序执行相应的任务,确保数据中台的稳定和高效运行。目前,已有多种任务调度系统被开发出来,例如Hadoop、Airflow、Celery等。但传统的调度系统通常存在调度效率低、容错性差、易于出现死锁的问题。
如何在任务流转环节多,系统协作关系复杂,任务依赖性强的情况下,研究分析影响任务调度的各种因素,实现高效的任务调度是当前遇到面临的一个技术问题难点。
发明内容
本申请提供一种任务调度方法、装置、电子设备及存储介质,可以在任务流转环节多,系统协作关系复杂,任务依赖性强的情况下,实现高效的任务调度,从而可以提升数据利用率、保障任务稳定性、提高任务灵活性。
第一方面,本申请实施例提供了一种分布式任务调度方法,应用于数据中台,所述方法包括:
接收用户在可视化显示界面的任务类型中通过拖动操作所添加的待调度任务相关的信息;
根据所述待调度任务相关的信息,构建所述待调度任务对应的有向无环图DAG模型;
将所述DAG模型发送至任务调度集群中的主服务器,使得所述主服务器基于所述DAG模型将所述待调度任务分解为多个子任务,并将各个子任务分别提交至所述任务调度集群中对应的工作服务器,由所述工作服务器对接收到的子任务进行调度;其中,所述主服务器和各个工作服务器分别部署:任务调度器、任务管理器、任务执行器、任务监控器和数据传输器。
第二方面,本申请实施例还提供了一种分布式任务调度方法,应用于任务调度集群中的主服务器,所述方法包括:
接收数据中台发送的待调度任务对应的DAG模型;
基于所述DAG模型将所述待调度任务分解为多个子任务;
将各个子任务分别提交至所述任务调度集群中对应的工作服务器,使得所述工作服务器对接收到的子任务进行调度。
第三方面,本申请实施例还提供了一种分布式任务调度装置,所述装置包括:第一接收模块、构建模块和第一发送模块;其中,
所述第一接收模块,用于接收用户在可视化显示界面的任务类型中通过拖动操作所添加的待调度任务相关的信息;
所述构建模块,用于根据所述待调度任务相关的信息,构建所述待调度任务对应的DAG模型;
所述第一发送模块,用于将所述DAG模型发送至任务调度集群中的主服务器,使得所述主服务器基于所述DAG模型将所述待调度任务分解为多个子任务,并将各个子任务分别提交至所述任务调度集群中对应的工作服务器,由所述工作服务器对接收到的子任务进行调度;其中,所述主服务器和各个工作服务器分别部署:任务调度器、任务管理器、任务执行器、任务监控器和数据传输器。
第四方面,本申请实施例还提供了一种分布式任务调度装置,所述装置包括:第二接收模块、分解模块和第二发送模块;其中,
所述第二接收模块,用于接收数据中台发送的待调度任务对应的有向无环图DAG模型;
所述分解模块,用于基于所述DAG模型将所述待调度任务分解为多个子任务;
所述第二发送模块,用于将各个子任务分别提交至所述任务调度集群中对应的工作服务器,使得所述工作服务器对接收到的子任务进行调度。
第五方面,本申请实施例提供了一种电子设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本申请任意实施例所述的分布式任务调度方法。
第六方面,本申请实施例提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现本申请任意实施例所述的分布式任务调度方法。
本申请实施例提出了一种分布式任务调度方法、装置、电子设备及存储介质,数据中台先接收用户在可视化显示界面的任务类型中通过拖动操作所添加的待调度任务相关的信息;然后根据待调度任务相关的信息,构建待调度任务对应的DAG模型;再将DAG模型发送至任务调度集群中的主服务器,使得主服务器基于DAG模型将待调度任务分解为多个子任务,并将各个子任务分别提交至任务调度集群中对应的工作服务器,由工作服务器对接收到的子任务进行调度。也就是说,在本申请的技术方案中,可以由主服务器基于DAG模型对待调度任务进行分解,由工作服务器对子任务进行调度。而在现有技术中,传统的调度系统通常存在调度效率低、容错性差、易于出现死锁的问题。因此,和现有技术相比,本申请实施例提出的分布式任务调度方法、装置、电子设备及存储介质,可以在任务流转环节多,系统协作关系复杂,任务依赖性强的情况下,实现高效的任务调度,从而可以提升数据利用率、保障任务稳定性、提高任务灵活性;并且,本申请实施例的技术方案实现简单方便、便于普及,适用范围更广。
附图说明
图1为本申请实施例提供的分布式任务调度方法的第一流程示意图;
图2为本申请实施例提供的可视化显示界面的示意图;
图3为本申请实施例提供的分布式任务调度方法的第二流程示意图;
图4为本申请实施例提供的Data Space任务调度系统的结构示意图;
图5为本申请实施例提供的分布式任务调度方法的第三流程示意图;
图6为本申请实施例提供的分布式任务调度方法的第四流程示意图;
图7为本申请实施例提供的分布式任务调度装置的第一结构示意图;
图8为本申请实施例提供的分布式任务调度装置的第二结构示意图;
图9为本申请实施例提供的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一
图1为本申请实施例提供的分布式任务调度方法的第一流程示意图,该方法可以由分布式任务调度装置或者数据中台来执行,该装置或者数据中台可以由软件和/或硬件的方式实现,该装置或者数据中台可以集成在任何具有网络通信功能的智能设备中。如图1所示,分布式任务调度方法可以包括以下步骤:
S101、接收用户在可视化显示界面的任务类型中通过拖动操作所添加的待调度任务相关的信息。
在本步骤中,数据中台可以接收用户在可视化显示界面的任务类型中通过拖动操作所添加的待调度任务相关的信息;其中,待调度任务相关的信息包括但不限于:任务实例所需的数据源、程序类型、引擎版本、子流程节点、依赖关系。
图2为本申请实施例提供的可视化显示界面的示意图。如图2所示,可视化界面可以的任务类型可以包括:Shell任务、子流程节点、存储过程节点、SQL任务、Spark节点、Flink节点、Mapreduce(MR)节点、Python脚本任务、依赖检查节点、HTTP节点、DataX节点、SQOOP、条件节点、条件判断节点、SeaTunnel任务、FLINK_STREAM。由于用户可以在可视化显示界面的任务类型中拖动并添加新的任务以及调度组件,从而可以拓展工作流容量。
S102、根据待调度任务相关的信息,构建待调度任务对应的DAG模型。
在本步骤中,数据中台可以根据待调度任务相关的信息,构建待调度任务对应的DAG模型。具体地,数据中台可以先在待调度任务相关的信息中提取出多个子流程节点以及多个子流程节点之间的依赖关系;然后根据多个子流程节点以及多个子流程节点之间的依赖关系构建DAG模型。
DAG模型是一种用于表示有向无环图的抽象数据结构。它由一组有向边连接的顶点组成,其中每个顶点表示一个任务或操作,有向边表示任务之间的依赖关系。构建DAG模型需要明确任务或操作之间的依赖关系。一般来说,可以根据任务的执行顺序和依赖关系,将每个任务看作一个顶点,并使用有向边来表示任务之间的依赖关系。通过这种方式,可以逐步构建DAG模型,并确保没有环出现。
S103、将DAG模型发送至任务调度集群中的主服务器,使得主服务器基于DAG模型将待调度任务分解为多个子任务,并将各个子任务分别提交至任务调度集群中对应的工作服务器,由工作服务器对接收到的子任务进行调度;其中,主服务器和各个工作服务器分别部署:任务调度器、任务管理器、任务执行器、任务监控器和数据传输器。
在本步骤中,数据中台可以将DAG模型发送至任务调度集群中的主服务器,使得主服务器基于DAG模型将待调度任务分解为多个子任务,并将各个子任务分别提交至任务调度集群中对应的工作服务器,由工作服务器对接收到的子任务进行调度。
本申请实施例提出的分布式任务调度方法,数据中台先接收用户在可视化显示界面的任务类型中通过拖动操作所添加的待调度任务相关的信息;然后根据待调度任务相关的信息,构建待调度任务对应的DAG模型;再将DAG模型发送至任务调度集群中的主服务器,使得主服务器基于DAG模型将待调度任务分解为多个子任务,并将各个子任务分别提交至任务调度集群中对应的工作服务器,由工作服务器对接收到的子任务进行调度。也就是说,在本申请的技术方案中,可以由主服务器基于DAG模型对待调度任务进行分解,由工作服务器对子任务进行调度。而在现有技术中,传统的调度系统通常存在调度效率低、容错性差、易于出现死锁的问题。因此,和现有技术相比,本申请实施例提出的分布式任务调度方法、装置、电子设备及存储介质,可以在任务流转环节多,系统协作关系复杂,任务依赖性强的情况下,实现高效的任务调度,从而可以提升数据利用率、保障任务稳定性、提高任务灵活性;并且,本申请实施例的技术方案实现简单方便、便于普及,适用范围更广。
实施例二
图3为本申请实施例提供的分布式任务调度方法的第二流程示意图。基于上述技术方案进一步优化与扩展,并可以与上述各个可选实施方式进行结合。
如图3所示,分布式任务调度可以包括以下步骤:
S301、接收用户在可视化显示界面的任务类型中通过拖动操作所添加的待调度任务相关的信息。
S302、在待调度任务相关的信息中提取出多个子流程节点以及多个子流程节点之间的依赖关系。
在本步骤中,数据中台可以在待调度任务相关的信息中提取出多个子流程节点以及多个子流程节点之间的依赖关系。子流程节点是指在一个主流程中包含的一个独立的子流程。子流程节点可以是一个独立的子任务或过程,负责完成一组特定的操作或任务,并返回结果给主流程节点。子流程节点可以作为主流程中的一个步骤,帮助提高流程的可读性和可维护性。在子流程节点中,可以定义输入参数、输出参数、条件判断以及子流程中的具体步骤。子流程节点可以被多个主流程节点所引用和重复使用。通过使用子流程节点,可以将一个复杂的流程拆分为多个简单的子流程,提高代码的重用性和可拓展性。子流程节点之间的依赖关系是指在一个子流程中,某些节点的执行需要依赖其他节点的完成。这种依赖关系确定了子流程节点之间的顺序和执行逻辑。在子流程中,一个节点的输出通常会作为下一个节点的输入。如果一个节点的输出对下一个节点的执行没有任何依赖,那么这两个节点的执行可以并行进行。但如果一个节点的执行需要等待上一个节点的完成并获取其输出,那么这两个节点之间就存在依赖关系。具体地,依赖关系可以通过以下方式来确定:1)控制连接:某些子流程设计工具允许用户使用控制连接来明确节点之间的依赖关系。控制连接定义了子流程的执行顺序,并确保一个节点的执行开始于前一个节点的完成之后。2)输入输出变量:节点之间的依赖关系也可以通过共享变量来建立。一个节点可以将输出变量传递给下一个节点的输入变量,从而建立起依赖关系。下一个节点可以根据输入变量的值来执行相应的操作。3)条件语句和循环结构:子流程中的节点之间的依赖关系也可以通过条件语句和循环结构来建立。某些节点的执行可能要根据先前节点的某些计算结果或条件满足与否来确定是否执行,或者执行多次。
S303、根据多个子流程节点以及多个子流程节点之间的依赖关系构建DAG模型。
在本步骤中,数据中台可以根据多个子流程节点以及多个子流程节点之间的依赖关系构建DAG模型。具体地,数据中台可以先根据多个子流程节点构建DAG模型中的任务节点;然后根据多个子流程节点之间的依赖关系,通过预先确定的智能优化算法计算DAG模型中的任务节点之间的边;其中,智能优化算法包括但不限于以下至少其中之一:随机加权算法、线行加权算法、平滑轮询加权算法;再根据DAG模型中的任务节点和DAG模型中的任务节点之间的边得到DAG模型。
S304、将DAG模型发送至任务调度集群中的主服务器,使得主服务器基于DAG模型将待调度任务分解为多个子任务,并将各个子任务分别提交至任务调度集群中对应的工作服务器,由工作服务器对接收到的子任务进行调度。
在本步骤中,数据中台可以将DAG模型发送至任务调度集群中的主服务器,使得主服务器基于DAG模型将待调度任务分解为多个子任务,并将各个子任务分别提交至任务调度集群中对应的工作服务器,由工作服务器对接收到的子任务进行调度。具体地,主服务器可以先在DAG模型中提取出入度为零的任务节点作为当前任务节点;然后将当前任务节点中所包含的任务确定为待调度任务中的一个子任务;若当前任务节点存在后继节点,则将当前任务节点的下一个任务节点作为当前任务节点,重复执行上述操作,直到当前任务节点不存在后继节点为止。
图4为本申请实施例提供的Data Space任务调度系统的结构示意图。如图4所示,Data Space任务调度系统可以包括:数据中台和任务调度集群;其中,任务调度集群可以包括:一个主服务器和若干个工作服务器;数据中台将待调度任务转换为DAG模型;通过API接口层将DAG模型发送至任务调度集群中的主服务器,主服务器基于DAG模型将待调度任务分解为多个子任务,并将各个子任务分别提交至任务调度集群中对应的工作服务器,由工作服务器对接收到的子任务进行调度。主服务器还可以监控各个子任务在对应的工作服务器中的任务状态;其中,任务状态包括以下其中之一:未执行、正在执行、已执行;并将各个子任务在对应的工作服务器中的任务状态发送至数据库,使得用户在数据库中监控待调度任务的任务执行报告。此外,API接口层还可以对数据库中的元数据进行管理。
在一个实施例中,用户可以在前端页面创建任务,包括输入数据、处理逻辑和输出数据等。定义调度计划,包括任务的执行频率、执行时间、执行周期等。定义依赖关系后提交任务到Data Space任务调度集群。分布式协调服务会根据任务的属性和节点状态,将任务分配到合适的节点上执行。在任务执行过程中,Data Space任务调度系统会监控任务的执行情况,包括任务的进度、状态、输出结果等返回到前端页面展示。当任务完成后,任务的输出结果保存到数据库中。
Data Space任务调度系统具备以下功能:首先是调度器的功能,该功能是DataSpace任务调度系统的核心功能之一,其主要作用是负责定义任务、安排任务的执行计划、调度任务到相应的节点上执行,并监控任务的生命周期。在分布式系统中,每个节点都有一个任务调度器,它们之间通过消息传递机制进行通信和协作;其次是任务管理器的功能,该功能负责监控节点状态、管理节点资源、分配任务到合适的节点上执行,并收集节点的性能指标。在分布式系统中,每个节点都部署一个任务管理器,它们之间也通过消息传递机制进行通信和协作;任务执行器的功能,该功能负责执行具体的任务、处理任务执行过程中的异常情况、与调度器通信以获取新的任务等。在分布式系统中,每个节点都部署一个任务执行器,它们之间通过消息传递机制进行通信和协作;数据传输器的功能,该功能负责将数据在节点之间传输,以便进行数据清洗、转换等操作。在分布式系统中,每个节点都部署一个数据传输器,它们之间通过消息传递机制进行通信和协作;然后是监控中心的功能,该功能负责监控任务的执行情况、收集节点的性能指标、提供可视化界面等。在本系统中,任务实例所需的数据源、程序类型、引擎版本、子流程节点、依赖关系等,均需服务层获取。接下来,服务层需要根据用户的配置信息,将任务参数数据及其他信息按照一定的规则进行组装后,生成相应的请求发送给Data Space任务调度系统服务,并对Data Space任务调度系统服务返回的调度结果进行统计,将统计计算后的数据返回给前端服务,以供前端显示。此外,也需要把调度结果存储到数据库。在核心代码方面,本系统的核心代码主要包括数据采集、预处理、策略制定、执行和结果输出等部分。在数据采集方面,本系统采用分布式采集技术,实现对任务数据的高效采集;在预处理方面,本系统采用数据清洗、去重、分组等技术,提高了数据质量和利用率;在策略制定方面,本系统采用基于任务复杂度、优先级、时间等因素的自动调度算法;在执行方面,本系统采用基于分布式调度框架和智能优化算法的执行方案;在结果输出方面,本系统采用可视化界面和报表输出技术,便于用户查看和分析。
本申请实施例提出的分布式任务调度方法,数据中台先接收用户在可视化显示界面的任务类型中通过拖动操作所添加的待调度任务相关的信息;然后根据待调度任务相关的信息,构建待调度任务对应的DAG模型;再将DAG模型发送至任务调度集群中的主服务器,使得主服务器基于DAG模型将待调度任务分解为多个子任务,并将各个子任务分别提交至任务调度集群中对应的工作服务器,由工作服务器对接收到的子任务进行调度。也就是说,在本申请的技术方案中,可以由主服务器基于DAG模型对待调度任务进行分解,由工作服务器对子任务进行调度。而在现有技术中,传统的调度系统通常存在调度效率低、容错性差、易于出现死锁的问题。因此,和现有技术相比,本申请实施例提出的分布式任务调度方法、装置、电子设备及存储介质,可以在任务流转环节多,系统协作关系复杂,任务依赖性强的情况下,实现高效的任务调度,从而可以提升数据利用率、保障任务稳定性、提高任务灵活性;并且,本申请实施例的技术方案实现简单方便、便于普及,适用范围更广。
实施例三
图5为本申请实施例提供的分布式任务调度方法的第三流程示意图,该方法可以由分布式任务调度装置或者任务调度集群中的主服务器来执行,该装置或者主服务器可以由软件和/或硬件的方式实现,该装置或者主服务器可以集成在任何具有网络通信功能的智能设备中。如图5所示,分布式任务调度方法可以包括以下步骤:
S501、接收数据中台发送的待调度任务对应的DAG模型。
在本步骤中,任务调度集群中的主服务器可以通过API接口层接收数据中台发送的待调度任务对应的DAG模型。API接口层是指在软件开发中,将应用程序或软件系统的功能封装成可供其他程序或系统调用的接口。API(Application Programming Interface)即应用程序编程接口,是一组定义了软件组件之间交互方式的规范。API接口层作为软件系统的一部分,负责处理请求、数据格式转换、权限控制和业务逻辑等功能,将上层的请求转化为底层代码能够理解和执行的指令。API接口层通常提供一系列的功能和方法,供其他开发者或系统可以调用和使用。这些功能和方法可以是获取、添加、删除、修改数据等操作,也可以是执行某些特定的业务逻辑。API接口层规范了请求和响应的数据格式,包括参数的传递方式、请求方法、错误代码的定义等,使得不同的系统可以通过统一的接口进行交互和通信。
S502、基于DAG模型将待调度任务分解为多个子任务。
在本步骤中,主服务器可以基于DAG模型将待调度任务分解为多个子任务。具体地,主服务器可以先在DAG模型中提取出入度为零的任务节点作为当前任务节点;然后将当前任务节点中所包含的任务确定为待调度任务中的一个子任务;若当前任务节点存在后继节点,则将当前任务节点的下一个任务节点作为当前任务节点,重复执行上述操作,直到当前任务节点不存在后继节点为止。
S503、将各个子任务分别提交至任务调度集群中对应的工作服务器,使得工作服务器对接收到的子任务进行调度。
在本步骤中,主服务器可以将各个子任务分别提交至任务调度集群中对应的工作服务器,使得工作服务器对接收到的子任务进行调度。具体地,对子任务进行调度的方法可以包括:1)就绪队列调度:将所有的子任务放入一个就绪队列中,由调度程序按照一定的优先级进行调度。每次选择优先级最高的子任务进行执行,直到任务完成或者被阻塞。2)时间片轮转调度:为每个子任务分配一个固定的时间片,在时间片用完之后,将子任务放回就绪队列,选择下一个子任务执行。这样可以保证每个子任务都有机会被执行,避免某个子任务占用资源过久。3)进程优先权调度:为每个子任务分配一个优先级,优先级高的子任务优先执行。可以根据任务的重要性、紧急性等因素来确定优先级,保证重要任务能够优先执行。4)实时调度:对于实时任务,可以使用实时调度算法,根据任务的截止时间等指标进行调度,以保证任务能够按时完成。
本申请实施例提出的分布式任务调度方法,数据中台先接收用户在可视化显示界面的任务类型中通过拖动操作所添加的待调度任务相关的信息;然后根据待调度任务相关的信息,构建待调度任务对应的DAG模型;再将DAG模型发送至任务调度集群中的主服务器,使得主服务器基于DAG模型将待调度任务分解为多个子任务,并将各个子任务分别提交至任务调度集群中对应的工作服务器,由工作服务器对接收到的子任务进行调度。也就是说,在本申请的技术方案中,可以由主服务器基于DAG模型对待调度任务进行分解,由工作服务器对子任务进行调度。而在现有技术中,传统的调度系统通常存在调度效率低、容错性差、易于出现死锁的问题。因此,和现有技术相比,本申请实施例提出的分布式任务调度方法、装置、电子设备及存储介质,可以在任务流转环节多,系统协作关系复杂,任务依赖性强的情况下,实现高效的任务调度,从而可以提升数据利用率、保障任务稳定性、提高任务灵活性;并且,本申请实施例的技术方案实现简单方便、便于普及,适用范围更广。
实施例四
图6为本申请实施例提供的分布式任务调度方法的第四流程示意图。基于上述技术方案进一步优化与扩展,并可以与上述各个可选实施方式进行结合。
如图6所示,分布式任务调度可以包括以下步骤:
S601、接收数据中台发送的待调度任务对应的DAG模型。
S602、在DAG模型中提取出入度为零的任务节点作为当前任务节点。
在DAG模型中,入度是指指向某个节点的边的数量。也就是说,入度表示有多少条边指向该节点。在一个有向无环图中,每个节点都有一个入度。入度为0的节点被称为起始节点或根节点,没有任何边指向它。而入度大于0的节点被称为中间节点或叶节点,有其他节点的边指向它。入度在DAG模型中是一个重要的概念,因为它可以描述节点的依赖关系。一个节点的入度越大,表示有更多的节点需要依赖它,或者有更多的任务需要在该节点执行之前完成。因此,入度可以用来进行拓扑排序和处理任务调度等操作。
S603、将当前任务节点中所包含的任务确定为待调度任务中的一个子任务。
S604、若当前任务节点存在后继节点,则将当前任务节点的下一个任务节点作为当前任务节点,重复执行上述操作,直到当前任务节点不存在后继节点为止。
S605、将各个子任务分别提交至任务调度集群中对应的工作服务器,使得工作服务器对接收到的子任务进行调度。
S606、监控各个子任务在对应的工作服务器中的任务状态;任务状态包括以下其中之一:未执行、正在执行、已执行。
S607、将各个子任务在对应的工作服务器中的任务状态发送至数据库,使得用户在数据库中监控待调度任务的任务执行报告。
在本步骤中,主服务器可以将各个子任务在对应的工作服务器中的任务状态发送至数据库,使得用户在数据库中监控待调度任务的任务执行报告;其中,任务状态包括以下其中之一:未执行、正在执行、已执行。
本申请实施例中的主服务器和工作服务器均可以部署:任务调度器、任务管理器、任务执行器、任务监控器和数据传输器;其中,任务调度器使用一种基于事件驱动的架构,可以处理大量任务并确保它们以正确的顺序执行。任务管理器采用一种基于图形的方法来管理任务之间的依赖关系,并在任务完成时通知任务调度器。任务执行器使用分布式计算技术来实现高性能的任务执行,并在任务失败时自动重试。任务监控器提供实时的任务执行报告,并支持通过邮件和短信等方式发送通知。同时在智能算法决策调优时,使用随机加权算法、线行加权算法以及平滑轮询加权算法等分配资源和任务调度,提高任务执行效率并最小化任务等待时间。并且还可以使用多算法相互协作,自适应地调整种群多样性,并处理复杂的调度问题。数据传输器负责将数据在节点之间传输,以便进行数据清洗、转换等操作。
具体地,在主服务器或者工作服务器上部署任务调度器可以按照以下步骤进行:1)选择任务调度器软件:根据用户需求和服务器环境,选择一款适合的任务调度器软件。一些常见的任务调度器软件包括Cron、Jenkins、Airflow等。2)安装任务调度器软件:根据所选任务调度器软件的安装指南,将其安装到服务器上。3)配置任务调度器:一旦安装完成,需要配置任务调度器以适应用户的需求。这可以包括创建任务、设置任务的调度时间和触发条件、配置任务的参数等。4)测试和调试:在正式部署任务之前,还应该进行测试和调试以确保任务调度器正常工作。测试可以包括运行一些简单的任务,检查任务是否按计划执行以及任务是否产生预期的结果等。5)部署任务:一旦任务调度器经过测试并且工作正常,可以开始部署实际的任务。这可能涉及到将任务脚本或程序上传到服务器,设置任务的执行路径和参数等。6)监控和维护:一旦任务部署完成,你应该设置监控机制来监控任务的执行情况,以便及时发现和解决可能出现的问题。同时,定期维护任务调度器和相关任务,更新配置、处理错误和异常等。
具体地,在主服务器或者工作服务器上部署任务管理器可以按照以下步骤进行:1)选择适合用户需求的任务管理器:根据用户的需求选择一个适合的任务管理器。2)创建一个任务文件:在主服务器或者工作服务器上创建一个任务文件。3)将任务文件复制到正确的位置:将任务文件复制到任务管理器期望找到的位置。4)启动任务管理器:启动选择的任务管理器。这可能涉及到启动或重启相关服务或进程。5)验证任务是否成功部署:使用适当的命令或日志文件来验证任务是否成功部署。
具体地,在主服务器或者工作服务器上部署任务执行器可以按照以下步骤进行:1)使用cron:cron是Linux系统上一个非常常用的任务调度工具。用户可以通过编辑cron配置文件来指定任务的执行时间和命令。创建一个shell脚本,在脚本中定义任务的执行逻辑和命令,然后使用cron来定期执行这个脚本。2)使用systemd:systemd是一种系统和服务管理工具,可以用于在Linux系统上管理和调度程序。用户可以创建一个systemd服务单元文件,配置任务执行器的命令和调度规则。然后使用systemd来启动和管理这个任务执行器。3)使用容器化技术:用户可以使用容器化技术,如Docker,将任务执行器容器化,并部署到服务器上。首先,创建一个Docker镜像,其中包含了任务执行器的运行环境和所需的依赖。然后,在服务器上运行这个Docker容器,即可实现任务执行器的部署和运行。
具体地,在主服务器或者工作服务器上部署任务监控器可以按照以下步骤进行:1)选择适合用户需求的任务监控器软件。2)在主服务器或者工作服务器上安装任务监控器软件。根据所选择的软件,用户需要遵循相应的安装步骤和要求来安装它。这通常涉及通过包管理器安装软件包、配置数据库和设置服务器。3)配置任务监控器。一旦安装完成,用户需要进行一些配置来定制和设置任务监控器。这包括创建监控项目、配置监控计划和设置警报机制等。4)添加任务和作业。根据用户需求,用户可以添加要监控的任务和作业。这些可以是服务器上的脚本、进程、服务或计划任务等。在监控器中,用户可以定义执行频率、期望的结果和警报条件等。5)设置警报通知。为了及时获得任务和作业执行的状态和错误,用户需要设置警报通知机制。这可以包括电子邮件通知、Slack通知或短信通知等。6)监控和管理任务。一旦任务监控器配置好,它会周期性地执行您的任务并收集执行结果。用户可以通过任务监控器的用户界面或命令行界面来监视和管理任务。如果某个任务失败或达到警报条件,用户将收到相应的通知。7)分析和优化任务。使用任务监控器的历史数据和报告,用户可以分析任务的性能和趋势,并做出相应的优化和改进。
具体地,在主服务器或者工作服务器上部署数据传输器可以按照以下步骤进行:1)获取用户要使用的数据传输器的安装文件或源代码。2)连接到主服务器或者工作服务器。用户可以使用SSH(Secure Shell)等远程连接工具来登录服务器。3)根据用户的操作系统类型,选择适当的方式安装所需的软件和依赖包。例如,对于Ubuntu操作系统,你可以使用apt-get命令进行安装,而对于CentOS操作系统,你则可以使用yum命令进行安装。4)将传输器的安装文件或源代码复制到服务器的目标位置。用户可以使用FTP(File TransferProtocol)或SCP(Secure Copy)等工具将文件从本地计算机复制到服务器。5)根据传输器的文档或说明,执行相应的安装和配置步骤。这可能包括运行安装脚本、设置配置文件、创建数据库等。
在本申请的具体实施例中,主服务器采用分布式无中心的设计理念,主服务器主要负责DAG任务切分、任务提交监控,并同时监听其它主服务器和工作服务器的健康状态。主服务器在启动服务时向Zookeeper注册临时节点,通过监听Zookeeper临时节点变化来进行容错处理。工作服务器也采用分布式无中心设计理念,工作服务器主要负责任务的执行和提供日志服务。
本申请在于提供了一种高效、可靠的任务调度系统,数据中台通过使用基于事件驱动构架和图形管理方法的大规模数据分布式调度系统技术,包括任务调度器、任务管理器、任务执行器、任务监控器和数据传输器。该系统具有高效、可靠、易于管理的特点,解决了数据中台中的任务调度面临的调度效率低、容错性差、易于出现死锁的问题,帮助数据中台提升数据利用率、保障任务稳定性、提高任务的灵活性。本申请可以帮助用户更好地处理大规模数据处理任务。本申请可以为该技术的发展和推广提供有力的保障。
本申请实施例提出的分布式任务调度方法,数据中台先接收用户在可视化显示界面的任务类型中通过拖动操作所添加的待调度任务相关的信息;然后根据待调度任务相关的信息,构建待调度任务对应的DAG模型;再将DAG模型发送至任务调度集群中的主服务器,使得主服务器基于DAG模型将待调度任务分解为多个子任务,并将各个子任务分别提交至任务调度集群中对应的工作服务器,由工作服务器对接收到的子任务进行调度。也就是说,在本申请的技术方案中,可以由主服务器基于DAG模型对待调度任务进行分解,由工作服务器对子任务进行调度。而在现有技术中,传统的调度系统通常存在调度效率低、容错性差、易于出现死锁的问题。因此,和现有技术相比,本申请实施例提出的分布式任务调度方法、装置、电子设备及存储介质,可以在任务流转环节多,系统协作关系复杂,任务依赖性强的情况下,实现高效的任务调度,从而可以提升数据利用率、保障任务稳定性、提高任务灵活性;并且,本申请实施例的技术方案实现简单方便、便于普及,适用范围更广。
实施例五
图7为本申请实施例提供的分布式任务调度装置的第一结构示意图。如图7所示,所述分布式任务调度装置包括:第一接收模块701、构建模块702和第一发送模块703;其中,
所述第一接收模块701,用于接收用户在可视化显示界面的任务类型中通过拖动操作所添加的待调度任务相关的信息;
所述构建模块702,用于根据所述待调度任务相关的信息,构建所述待调度任务对应的DAG模型;
所述第一发送模块703,用于将所述DAG模型发送至任务调度集群中的主服务器,使得所述主服务器基于所述DAG模型将所述待调度任务分解为多个子任务,并将各个子任务分别提交至所述任务调度集群中对应的工作服务器,由所述工作服务器对接收到的子任务进行调度。
上述分布式任务调度装置可执行本申请实施例一和二所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请实施例一和二提供的分布式任务调度方法。
实施例六
图8为本申请实施例提供的分布式任务调度装置的第二结构示意图。如图8所示,所述分布式任务调度装置包括:第二接收模块801、分解模块802和第二发送模块803;其中,
所述第二接收模块801,用于接收数据中台发送的待调度任务对应的DAG模型;
所述分解模块802,用于基于所述DAG模型将所述待调度任务分解为多个子任务;
所述第二发送模块803,用于将各个子任务分别提交至所述任务调度集群中对应的工作服务器,使得所述工作服务器对接收到的子任务进行调度。
上述分布式任务调度装置可执行本申请实施例三和四所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请实施例三和四提供的分布式任务调度方法。
实施例七
图9示出了可以用来实施本发明的实施例的电子设备10的结构示意图。本申请实施例中的电子设备可以包括:数据中台和任务调度集群中的主服务器和工作服务器。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图9所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(ROM)12、随机访问存储器(RAM)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(ROM)12中的计算机程序或者从存储单元18加载到随机访问存储器(RAM)13中的计算机程序,来执行各种适当的动作和处理。在RAM 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、ROM 12以及RAM 13通过总线14彼此相连。输入/输出(I/O)接口15也连接至总线14。
电子设备10中的多个部件连接至I/O接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如分布式任务调度方法。
在一些实施例中,分布式任务调度方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由ROM 12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到RAM 13并由处理器11执行时,可以执行上文描述的分布式任务调度方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行分布式任务调度方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (10)
1.一种分布式任务调度方法,其特征在于,应用于数据中台,所述方法包括:
接收用户在可视化显示界面的任务类型中通过拖动操作所添加的待调度任务相关的信息;
根据所述待调度任务相关的信息,构建所述待调度任务对应的有向无环图DAG模型;
将所述DAG模型发送至任务调度集群中的主服务器,使得所述主服务器基于所述DAG模型将所述待调度任务分解为多个子任务,并将各个子任务分别提交至所述任务调度集群中对应的工作服务器,由所述工作服务器对接收到的子任务进行调度;其中,所述主服务器和各个工作服务器分别部署:任务调度器、任务管理器、任务执行器、任务监控器和数据传输器。
2.根据权利要求1所述的方法,其特征在于,根据所述待调度任务相关的信息,构建所述待调度任务对应的有向无环图DAG模型,包括:
在所述待调度任务相关的信息中提取出多个子流程节点以及所述多个子流程节点之间的依赖关系;
根据所述多个子流程节点以及所述多个子流程节点之间的依赖关系构建所述DAG模型。
3.根据权利要求1所述的方法,其特征在于,根据所述多个子流程节点以及所述多个子流程节点之间的依赖关系构建所述DAG模型,包括:
根据所述多个子流程节点构建所述DAG模型中的任务节点;
根据所述多个子流程节点之间的依赖关系,通过预先确定的智能优化算法计算所述DAG模型中的任务节点之间的边;其中,所述智能优化算法包括但不限于以下至少其中之一:随机加权算法、线行加权算法、平滑轮询加权算法;
根据所述DAG模型中的任务节点和所述DAG模型中的任务节点之间的边得到所述DAG模型。
4.一种分布式任务调度方法,其特征在于,应用于任务调度集群中的主服务器,所述方法包括:
接收数据中台发送的待调度任务对应的有向无环图DAG模型;
基于所述DAG模型将所述待调度任务分解为多个子任务;
将各个子任务分别提交至所述任务调度集群中对应的工作服务器,使得所述工作服务器对接收到的子任务进行调度。
5.根据权利要求4所述的方法,其特征在于,基于所述DAG模型将所述待调度任务分解为多个子任务,包括:
在所述DAG模型中提取出入度为零的任务节点作为当前任务节点;
将所述当前任务节点中所包含的任务确定为所述待调度任务中的一个子任务;
若所述当前任务节点存在后继节点,则将所述当前任务节点的下一个任务节点作为所述当前任务节点,重复执行上述操作,直到所述当前任务节点不存在后继节点为止。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
监控各个子任务在对应的工作服务器中的任务状态;所述任务状态包括以下其中之一:未执行、正在执行、已执行;
将各个子任务在对应的工作服务器中的任务状态发送至数据库,使得用户在所述数据库中监控所述待调度任务的任务执行报告。
7.一种分布式任务调度装置,其特征在于,所述装置包括:第一接收模块、构建模块和第一发送模块;其中,
所述第一接收模块,用于接收用户在可视化显示界面的任务类型中通过拖动操作所添加的待调度任务相关的信息;
所述构建模块,用于根据所述待调度任务相关的信息,构建所述待调度任务对应的有向无环图DAG模型;
所述第一发送模块,用于将所述DAG模型发送至任务调度集群中的主服务器,使得所述主服务器基于所述DAG模型将所述待调度任务分解为多个子任务,并将各个子任务分别提交至所述任务调度集群中对应的工作服务器,由所述工作服务器对接收到的子任务进行调度;其中,所述主服务器和各个工作服务器分别部署:任务调度器、任务管理器、任务执行器、任务监控器和数据传输器。
8.一种分布式任务调度装置,其特征在于,所述装置包括:第二接收模块、分解模块和第二发送模块;其中,
所述第二接收模块,用于接收数据中台发送的待调度任务对应的有向无环图DAG模型;
所述分解模块,用于基于所述DAG模型将所述待调度任务分解为多个子任务;
所述第二发送模块,用于将各个子任务分别提交至所述任务调度集群中对应的工作服务器,使得所述工作服务器对接收到的子任务进行调度;其中,所述主服务器和各个工作服务器分别部署:任务调度器、任务管理器、任务执行器、任务监控器和数据传输器。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1至3或者4至6中任一项所述的分布式任务调度方法。
10.一种存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至3或者4至6中任一项所述的分布式任务调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311271311.7A CN117311937A (zh) | 2023-09-27 | 2023-09-27 | 一种分布式任务调度方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311271311.7A CN117311937A (zh) | 2023-09-27 | 2023-09-27 | 一种分布式任务调度方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117311937A true CN117311937A (zh) | 2023-12-29 |
Family
ID=89245789
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311271311.7A Pending CN117311937A (zh) | 2023-09-27 | 2023-09-27 | 一种分布式任务调度方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117311937A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117891584A (zh) * | 2024-03-15 | 2024-04-16 | 福建顶点软件股份有限公司 | 基于dag分组的任务并行度调度方法、介质和设备 |
CN118034672A (zh) * | 2024-04-10 | 2024-05-14 | 浪潮软件股份有限公司 | 一种基于Spark的可视化数据处理分析方法及系统 |
-
2023
- 2023-09-27 CN CN202311271311.7A patent/CN117311937A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117891584A (zh) * | 2024-03-15 | 2024-04-16 | 福建顶点软件股份有限公司 | 基于dag分组的任务并行度调度方法、介质和设备 |
CN117891584B (zh) * | 2024-03-15 | 2024-05-14 | 福建顶点软件股份有限公司 | 基于dag分组的任务并行度调度方法、介质和设备 |
CN118034672A (zh) * | 2024-04-10 | 2024-05-14 | 浪潮软件股份有限公司 | 一种基于Spark的可视化数据处理分析方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11487536B2 (en) | System for automating user-defined actions for applications executed using virtual machines in a guest system | |
CN110851145B (zh) | 一种基于容器编排的边缘云安装维护方法及系统 | |
Han et al. | Tailored learning-based scheduling for kubernetes-oriented edge-cloud system | |
US20210117895A1 (en) | Systems and Methods for Cross-Platform Scheduling and Workload Automation | |
CN117311937A (zh) | 一种分布式任务调度方法、装置、电子设备及存储介质 | |
CN107918556A (zh) | 一种定时任务在多个服务器的并行执行方法和装置 | |
US8538793B2 (en) | System and method for managing real-time batch workflows | |
CN113569987A (zh) | 模型训练方法和装置 | |
US11977470B2 (en) | Monitoring long running workflows for robotic process automation | |
US20220164222A1 (en) | Execution of Services Concurrently | |
CN115840631B (zh) | 基于raft的高可用分布式任务调度方法和设备 | |
CN110611707A (zh) | 一种任务调度的方法及装置 | |
WO2024082853A1 (zh) | 高性能计算应用性能调优的方法及系统 | |
CN114510317A (zh) | 虚拟机管理方法、装置、设备及存储介质 | |
Bianchi et al. | An ASM-based model for grid job management | |
EP4124945A1 (en) | System and method for batch and scheduler migration in an application environment migration | |
CN115712572A (zh) | 任务的测试方法、装置、存储介质及电子装置 | |
CN115237547A (zh) | 一种非侵入式hpc计算集群的统一容器集群托管系统和方法 | |
CN114896049A (zh) | 电力人工智能平台作业任务调度方法、系统、设备及介质 | |
Shen et al. | Collaborative Learning-Based Scheduling for Kubernetes-Oriented Edge-Cloud Network | |
US20240143369A1 (en) | Using rule engine with push mechanism for configuration data of a containerized computing cluster | |
US12008488B2 (en) | Systems and methods to manage sub-chart dependencies with directed acyclic graphs | |
Lavacca | Scheduling Jobs on Federation of Kubernetes Clusters | |
US20240144048A1 (en) | Using rule engine with backward chaining in a containerized computing cluster | |
US20240184271A1 (en) | Autoscaling strategies for robotic process automation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |