CN111736969A - 分布式作业调度方法及装置 - Google Patents
分布式作业调度方法及装置 Download PDFInfo
- Publication number
- CN111736969A CN111736969A CN202010546104.8A CN202010546104A CN111736969A CN 111736969 A CN111736969 A CN 111736969A CN 202010546104 A CN202010546104 A CN 202010546104A CN 111736969 A CN111736969 A CN 111736969A
- Authority
- CN
- China
- Prior art keywords
- job
- node
- information
- scheduling
- directed acyclic
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 230000001419 dependent effect Effects 0.000 claims description 43
- 238000004590 computer program Methods 0.000 claims description 16
- 238000003491 array Methods 0.000 claims description 8
- 238000012544 monitoring process Methods 0.000 claims description 8
- 125000004122 cyclic group Chemical group 0.000 abstract description 15
- 238000010586 diagram Methods 0.000 description 22
- 238000012545 processing Methods 0.000 description 13
- 238000012423 maintenance Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000002159 abnormal effect Effects 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种分布式作业调度方法及装置,涉及作业调度技术领域,该方法包括:获取分布式系统中各节点的作业依赖关系信息;根据作业依赖关系信息生成有向无环图;根据有向无环图确定作业调度信息;按照作业调度信息调度分布式系统中各节点执行作业任务。本发明可以减小分布式系统各个计算机节点上的作业的循环依赖关系的影响,保证按照作业间的依赖顺序执行作业,保证作业的及时高效执行。
Description
技术领域
本发明涉及作业调度技术领域,尤其是涉及一种分布式作业调度方法及装置。
背景技术
在分布式应用系统(特别是分布式批处理系统)中,经常需要在分布式系统的各个计算机节点上执行批量处理作业。由于各个批处理作业可能存在先后顺序和依赖关系,若作业间存在循环依赖关系,则会导致现有分布式系统调度过程复杂,容易出现调度错误,进而影响分布式系统中作业(尤其是批处理作业)的执行进度。
发明内容
本发明提供了一种分布式作业调度方法及装置,可以减小分布式系统各个计算机节点上的作业的循环依赖关系的影响,保证分布式系统中作业的及时高效执行。
第一方面,本发明实施例提供了一种分布式作业调度方法,该方法包括:获取分布式系统中各节点的作业依赖关系信息;根据所述作业依赖关系信息生成有向无环图;根据所述有向无环图确定作业调度信息;按照所述作业调度信息调度所述分布式系统中各节点执行作业任务。
第二方面,本发明实施例还提供一种分布式作业调度装置,该装置包括:获取模块,用于获取分布式系统中各节点的作业依赖关系信息;生成模块,用于根据所述作业依赖关系信息生成有向无环图;确定模块,用于根据所述有向无环图确定作业调度信息;调度模块,用于按照所述作业调度信息调度所述分布式系统中各节点执行作业任务。
第三方面,本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述分布式作业调度方法。
第四方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述分布式作业调度方法的计算机程序。
本发明实施例带来了以下有益效果:本发明实施例提供了一种分布式作业调度方案,该方案首先获取分布式系统中各节点的作业依赖关系信息,之后,根据作业依赖关系信息生成有向无环图,从而,消除分布式系统中各节点间作业的循环依赖关系,根据有向无环图,确定作业调度信息,再按照作业调度信息调度分布式系统中各节点执行作业任务。本发明实施例可以减小分布式系统各个计算机节点上的作业的循环依赖关系的影响,保证按照作业间的依赖顺序执行作业,保证作业的及时高效执行。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的分布式作业调度方法流程图;
图2为本发明实施例提供的分布式作业调度方法一种实施流程图;
图3为本发明实施例提供的分布式作业调度方法一种实施系统结构框图
图4为本发明实施例提供的分布式作业调度方法实现的一种功能结构图;
图5为本发明实施例提供的分布式作业调度方法工作流程图;
图6为本发明实施例提供的分布式作业调度方法另一种实施流程图;
图7为本发明实施例提供的一种节点间依赖关系图;
图8为本发明实施例提供的另一种节点间依赖关系图;
图9为本发明实施例提供的一种分布式作业调度装置结构框图;
图10为本发明实施例提供的另一种分布式作业调度装置结构框图;
图11为本发明实施例提供的计算机设备结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在现有方案中,Spring Batch是一个轻量级的、完善的批处理框架,旨在帮助企业建立健壮、高效的批处理应用。Spring Batch是Spring的一个子项目,使用Java语言并基于Spring框架为基础开发,Spring Batch提供了大量可重用的组件,包括了日志、追踪、事务、任务作业统计、任务重启、跳过、重复、资源管理。通过SpringBatch能够支持简单的、复杂的和大数据量的批处理作业。Spring Batch是一个批处理应用框架,不是调度框架,但需要和调度框架合作来构建完成的批处理任务。它只关注批处理任务相关的问题,如事务、并发、监控、执行等,并不提供相应的调度功能。
针对时间调度的需求,经常使用的是Linux/unix系统的crontab命令,crontab命令可以让使用者在固定时间或固定时间间隔执行程序,crontab命令的时间调度策略比较完善,可以配置为每分钟/小时/天/周/月/年的某个时刻,也可以配置每隔多长时间执行。
Quarz是OpenSymphony开源组织在作业调度领域又一个开源项目,是一个完全由java编写的开源作业调度框架。
在Java应用中,一般会使用Quarz来解决作业调度问题,Quarz也可以实现定时作业调度。
以上SpringBatch、crontab、Quarz几种方案存在以下缺陷:
1、只能控制单个作业的时间调度,不能处理存在依赖关系的作业,包括同机和跨机部署执行的作业,而随着系统复杂性和计算机节点的增加,不可避免地需要将作业拆分,并分散到各个计算机节点执行,导致各个计算机节点上的作业间存在先后顺序和依赖关系;
2、节点上的作业是无状态的,各个计算机节点上的作业只能机械的按照预定周期进行执行,不能适用这类场景:按周期执行的作业不能记录作业启动、作业执行故障、作业执行失败、作业执行成功的状态,不能根据作业执行的状态重新执行作业,每个作业的执行状态也没有保存;
3、不支持分布式系统的作业调度,没有建立分布式系统各个计算节点之间的作业调度关系,无法在分布式系统各个计算节点之间的作业进行通讯,发布作业执行进度信息;
4、不支持分布式系统的作业监控,无法跟踪分布式系统各个计算节点之间的作业执行情况,在分布式系统各个计算节点之上的作业执行异常时,无法对系统运维人员进行报警。
基于此,本发明实施例提供的一种分布式作业调度方法及装置,该方法可以更高效地完成在分布式系统的各个计算机节点上存在依赖关系的批处理作业的执行,并跟踪分布式系统各个计算节点之间的作业执行情况,在各个计算节点之上的作业执行异常时,对系统运维人员进行报警。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种分布式作业调度方法进行详细介绍。
首先,对涉及到的术语进行解释。
分布式系统:在一个分布式系统中,一组独立的计算机展现给用户的是一个统一的整体,就好像是一个系统似的。分布式系统一般在多个计算节点运行,系统拥有多种通用的物理和逻辑资源,可以动态的分配任务,分散的物理和逻辑资源通过计算机网络实现信息交换。
作业:作业由三部分构成:程序、数据和作业说明书;是用户在完成一项任务过程中要求计算机系统所做工作的集合。
作业调度:作业调度的主要功能是根据作业控制块中的信息,审查系统能否满足用户作业的资源需求,以及按照一定的算法,从外存的后备队列中选取某些作业调入内存,并为它们创建进程、分配必要的资源。然后再将新创建的进程插入就绪队列,准备执行。
DAG(Directed Acyclic Graph,有向无环图):在图论中,如果一个有向图无法从某个顶点出发经过若干条边回到该点,则这个图是一个有向无环图(DAG图)。因为有向图中一个点经过两种路线到达另一个点未必形成环,因此有向无环图未必能转化成树,但任何有向树均为有向无环图。
本发明实施例提供了一种分布式作业调度方法,参见图1所示的一种分布式作业调度方法流程图,该方法包括以下步骤:
步骤S102,获取分布式系统中各节点的作业依赖关系信息。
在本发明实施例中,分布式系统中包括多个节点,对于一项作业,可能需要多个节点按照给定顺序执行作业任务。分布式系统,可以用于执行多个作业,因此,对于分布式系统中的每个节点,都可能与其他节点存在先后执行作业任务的依赖关系。作业依赖关系信息,用于确定节点与其他节点之间的作业先后顺序,可以由人工给定。
步骤S104,根据作业依赖关系信息生成有向无环图。
在本发明实施例中,根据作业依赖关系信息可以确定节点与其他节点之间的作业先后顺序,在确定了一组相互之间具有作业先后顺序的节点之后,若相互之间不存在循环依赖关系,则可以基于这些相互之间存在作业先后顺序,但不存在循环依赖关系的多个节点,得到有向无环图。
步骤S106,根据有向无环图确定作业调度信息。
在本发明实施例中,在确定了有向无环图后,根据有向无环图生成作业调度信息,并将作业调度信息保存在缓存数据库中。作业调度信息用于确定一项作业中各个计算机节点的先后作业顺序。
步骤S108,按照作业调度信息调度分布式系统中各节点执行作业任务。
在本发明实施例中,作业以分布式方式提交到各个计算机节点的作业执行程序中进行加载,作业执行程序到缓存数据库中查询作业调度信息,得到作业间的依赖关系,按照作业调度信息确定的作业顺序,调度分布式系统中各节点执行作业任务。
本发明实施例提供了一种分布式作业调度方案,该方案首先获取分布式系统中各节点的作业依赖关系信息,之后,根据作业依赖关系信息生成有向无环图,从而,消除分布式系统中各节点间作业的循环依赖关系,根据有向无环图,确定作业调度信息,再按照作业调度信息调度分布式系统中各节点执行作业任务。本发明实施例可以减小分布式系统各个计算机节点上的作业的循环依赖关系的影响,保证按照作业间的依赖顺序执行作业,保证作业的及时高效执行。
为了提高有向无环图的生成效率,作业依赖关系信息包括依赖作业数据、本节点作业数据和后置作业数据;根据作业依赖关系信息生成有向无环图,可以按照如下步骤执行:
生成无作业开始节点和无作业结束节点;无作业开始节点包括后置作业数据,无作业结束节点包括依赖作业数据;若第一节点的后置作业数据与第二节点的依赖作业数据相同,则确定第一节点和第二节点存在依赖关系;根据存在依赖关系的多个节点的作业依赖关系信息,确定有向无环图;有向无环图包括无作业开始节点和无作业结束节点。
在本发明实施例中,可以根据作业依赖关系信息,得到分布式系统中的每个节点的依赖作业数据、本节点作业数据和后置作业数据,其中,依赖作业数据用于确定本节点之前作业的节点,后置作业数据用于确定本节点之后作业的节点,本节点作业数据用于确定本节点要处理的作业内容。
无作业开始节点是虚拟节点,不用于承担作业任务,用于表示有向无环图的起点。无作业结束节点也是虚拟节点,不用于承担作业任务,用于表示有向无环图的终点。其中,无作业开始节点包括后置作业数据,无作业结束节点包括依赖作业数据。
参见图7所示的一种节点间依赖关系图,例如一个分布式系统有7个计算节点执行批处理作业,其中“0”节点为无作业开始节点,“-1”节点为无作业结束节点。对每个节点遍历依赖关系信息,得到多个包括三个元素的数组,该数组中依次包括依赖作业数据、本节点作业数据和后置作业数据,得到[0,1,2],[0,1,3],[1,2,5],[1,3,4],[2,5,6],[3,4,6],[5,6,7],[4,6,7]和[6,7,-1],若第一节点的后置作业数据与第二节点的依赖作业数据相同,则确定第一节点和第二节点存在依赖关系,可以是如果一个数组的第三个元素和另一个数组的第一个元素相等,两个作业就存在依赖关系。参见图7,对于节点“5”,依赖关系信息包括[2,5,6],对于节点“7”,依赖关系包括[6,7,-1],第一节点“5”的后置作业数据与第二节点“7”的依赖作业数据相同,则可以确定节点“5”和节点“7”存在依赖关系。而根据作业依赖关系信息,可以知道,节点“5”和节点“2”存在依赖关系,节点“2”和节点“1”存在依赖关系,从而,可以根据存在依赖关系的多个节点的作业依赖关系,确定有向无环图。
为了高效地消除循环依赖关系,根据存在依赖关系的多个节点的作业依赖关系信息,确定有向无环图,可以按照如下步骤执行:
根据存在依赖关系的多个节点的作业依赖关系信息,确定包括无作业开始节点和无作业结束节点的多个调度信息数组;判断每个调度信息数组中是否存在相同节点;如果是,则将调度信息数组发送至提醒模块,以使提醒模块根据调度信息数组生成提醒信息;如果否,则根据调度信息数组生成有向无环图。
在本发明实施例中,参见图8所示的另一种节点间依赖关系图,对于有7个计算节点的分布式系统,为确定包括无作业开始节点和无作业结束节点的多个调度信息数组,可以定义包含9个元素的数组表示调度信息,初始化为【0,-2,-2,-2,-2,-2,-2,-2,-2】,确定了调度信息后,得到例如,【0,1,2,5,6,7,-1,-2,-2】,【0,1,3,4,6,7,-1,-2,-2】和【0,1,3,4,8,3,-2,-2,-2】,对于数组【0,1,3,4,8,3,-2,-2,-2】,其中包括相同的节点“3”,则证明该数组中存在循环依赖关系,则将该数组发送至提醒模块,以使提醒模块向工作人员发送提醒信息,以便工作人员进行循环依赖关系的修正;对于数组【0,1,2,5,6,7,-1,-2,-2】和【0,1,3,4,6,7,-1,-2,-2】,参见图7,可知,不存在循环依赖关系,则可以基于这两个数组生成有向无环图。
在确定了有向无环图以后,可以根据有向无环图筛选出没有循环依赖关系的多个节点,完成作业任务,因此,根据有向无环图确定作业调度信息,可以按照如下步骤执行:
读取有向无环图中从无作业开始节点至无作业结束节点的作业依赖关系数据;根据作业依赖关系数据确定分布式系统中各节点的作业调度信息。
在有向无环图中,包括从任意节点到任意节点的先后作业执行顺序关系,在本发明实施例中,需要读取从无作业开始节点至无作业结束节点的作业依赖关系数据,作为作业调度的顺序。
为了保证每个节点作业的成功执行,按照作业调度信息调度分布式系统中各节点执行作业任务,可以按照如下步骤执行:
根据依赖作业数据,查询目标节点的依赖节点的作业状态;若目标节点的所有依赖节点的作业状态为作业完成,则启动目标节点执行作业任务。
在本发明实施例中,根据依赖作业数据可以确定目标节点的上一作业节点,在缓存数据库中查询上一作业节点依赖作业的执行状态,在依赖作业未完成时等待,在依赖作业完成时启动加载的作业,并把目标节点的作业的状态写入缓存数据库中。目标节点的下一作业节点,在缓存数据库中查询到目标节点作业状态为作业完成以后,启动目标节点的下一节点执行作业任务。
需要说明的是,在本发明实施例中,可以间隔预设时长,例如,1-5秒,到缓存数据库中查询目标节点所有依赖作业的执行状态。
为了监控作业故障节点,在作业执行故障时启动作业进行重做,该方法还可以执行如下步骤:
监控分布式系统中各节点的作业状态;若作业状态为作业故障,则向作业故障的节点发送作业重做指令,以使作业故障的节点重新启动作业执行程序;记录作业重做结果。
在本发明实施例中,各节点的作业状态包括:作业启动、作业故障、作业执行失败和作业执行成功等。若作业状态为作业故障,根据作业重做指令,登录作业故障的节点,运行脚本启动作业执行程序,进行作业重做。
参见图4所示的分布式作业调度方法实现的一种功能结构图,记录作业重做结果,可以按照如下步骤执行:在作业启动时,可以记录作业重做结果为“作业启动”,在作业重新执行发生异常时,可以记录作业重做结果为“作业故障”,在作业重做完成并成功时,可以记录作业重做结果为“作业成功”,在作业重做完成并失败时,可以记录作业重做结果为“作业失败”。
为了避免作业重做失败的影响,该方案还包括:在预设时长内,若作业故障的节点作业执行失败,则生成报警信息;将报警信息发送至报警模块,以使报警包括生成警报。
在本发明实施例中,如果在指定时长内未完成作业重做,就认为作业执行失败,在缓存数据库中写入“作业执行失败”,并生成报警信息,以对系统运维人员进行报警,及时进行处理。
参见图2所示的分布式作业调度方法一种实施流程图,在一个实施例中,该方法可以包括如下步骤:
S1、根据分布式系统中各个计算机节点之间的作业间的依赖关系画出DAG有向无环图;
S2、根据DAG有向无环图生成作业调度信息,并将作业调度信息保存在缓存数据库中;
S3、作业以分布式方式提交到各个计算机节点的作业执行程序中进行加载;
S4、作业执行程序到缓存数据库中查询作业依赖关系,到缓存数据库中查询依赖作业的执行状态,在依赖作业未完成时等待,在依赖作业完成时启动加载的作业,并把本作业的状态写入缓存数据库中;
S5、作业执行程序执行完毕,向缓存数据库中写入作业执行成功状态;
S6、作业的后置作业从缓存数据库中查询到作业执行成功,作业的后置作业开始执行;
S7、DAG有向无环图中所有的作业的状态都为作业执行成功状态,分布式系统中的作业执行完毕;
S8、有一支独立的作业监控程序定时查询缓存数据库中各个作业的状态,在发现作业执行故障时,登录作业所在计算机节点,运行脚本启动作业执行程序,进行作业重做,如果在指定时间内未完成作业重做,就认为作业执行失败,对系统运维人员进行报警。
其中,步骤S1包括以下子步骤:
S11、开发人员根据分布式系统中各个计算机节点之间的所有作业间的依赖关系画出依赖关系图,有单独的执行程序判断作业依赖关系图中是否存在循环依赖,如果存在循环依赖关系,那么所有作业是不可能完成的;
S12、单独的执行程序发现作业依赖关系图中存在循环依赖关系,告知开发人员重新进行所有作业间的依赖关系的分解和调整;
S13、单独的执行程序发现作业依赖关系图中不存在循环依赖关系,保存所有作业依赖关系的DAG有向无环图到缓存数据库中。
步骤S2包括以下子步骤:
S21、有单独的执行程序读取缓存数据库中所有作业依赖关系的DAG有向无环图信息;
S22、单独的执行程序根据DAG有向无环图信息声称所有作业的调度信息;
S23、单独的执行程序将所有作业的调度信息保存在缓存数据库中。
步骤S4包括以下子步骤;
S41、作业执行程序到缓存数据库中查询作业依赖关系,所属做的依赖作业可能为多个;
S42、作业执行程序定时(每隔一段时间,一般为1-5秒)到缓存数据库中查询所有依赖作业的执行状态。
S43、作业执行程序依此判断每一个依赖作业是否完成,在所有依赖作业未完成时等待,在所有依赖作业完成时启动加载的作业。
S44、作业执行程序并把本作业的状态写入缓存数据库中,作业状态包括:作业启动、作业执行故障、作业执行失败、作业执行成功,在作业启动时,写入【作业启动】,在作业执行发生异常时,写入【作业执行故障】,在作业完成时,写入【作业执行成功】。
步骤S8包括以下子步骤:
S81、有一支独立的作业监控程序定时查询缓存数据库中各个作业的状态;
S82、独立的作业监控程序在发现作业执行故障时,登录作业所在计算机节点,运行脚本启动作业执行程序,进行作业重做;
S83、独立的作业监控程序如果在指定时间内未完成作业重做,就认为作业执行失败,在缓存数据库中写入【作业执行失败】,对系统运维人员进行报警。
参见图3所示的分布式作业调度方法一种实施系统结构框图,以及图5所示的分布式作业调度方法工作流程图,该方法可以按照分布式作业调度系统进行实施,该调度系统可以包括DAG有向无环图生成模块,用于生成所有作业依赖关系的DAG有向无环图。分布式作业调度信息存储模块,用于根据DAG有向无环图生成作业调度信息,并将作业调度信息保存在缓存数据库中。分布式作业加载模块,用于加载以分布式方式提交到各个计算机节点的作业。作业调度及执行模块,用于从缓存数据库中查询作业的依赖关系,根据作业的依赖关系判断依赖作业是否完成,在依赖作业完成时执行加载的作业,将作业的执行状态写入缓存数据库。分布式作业监控模块,用于定时查询缓存数据库中各个作业的状态,在作业执行故障时启动作业进行重做,在作业执行失败时,对系统运维人员进行报警。
本发明实施例提供了一种分布式作业调度方法及装置,参见图6所示的分布式作业调度方法另一种实施流程图,该方法基于有向无环图进行作业调度,消除了分布式系统各个计算机节点上的作业的循环依赖关系,使用缓存数据库对运行于分布式系统各个计算机节点上的作业进行调度,保证了分布式系统中作业(尤其是批处理作业)的及时高效执行,保证按照作业间的依赖顺序执行作业,并对运行于分布式系统各个计算机节点上的作业进行监控,在作业执行故障时启动作业进行重做,在作业执行失败时,对系统运维人员进行报警。
本发明实施例中还提供了一种分布式作业调度装置,如下面的实施例所述。由于该装置解决问题的原理与分布式作业调度方法相似,因此该装置的实施可以参见分布式作业调度方法的实施,重复之处不再赘述。参见图9所示的一种分布式作业调度装置结构框图,该装置包括:
获取模块71,用于获取分布式系统中各节点的作业依赖关系信息;生成模块72,用于根据作业依赖关系信息生成有向无环图;确定模块73,用于根据有向无环图确定作业调度信息;调度模块74,用于按照作业调度信息调度分布式系统中各节点执行作业任务。
在一个实施例中,作业依赖关系信息包括依赖作业数据、本节点作业数据和后置作业数据;生成模块,具体用于:生成无作业开始节点和无作业结束节点;无作业开始节点包括后置作业数据,无作业结束节点包括依赖作业数据;若第一节点的后置作业数据与第二节点的依赖作业数据相同,则确定第一节点和第二节点存在依赖关系;根据存在依赖关系的多个节点的作业依赖关系信息,确定有向无环图;有向无环图包括无作业开始节点和无作业结束节点。
在一个实施例中,生成模块,具体用于:根据存在依赖关系的多个节点的作业依赖关系信息,确定包括无作业开始节点和无作业结束节点的多个调度信息数组;判断每个调度信息数组中是否存在相同节点;如果是,则将调度信息数组发送至提醒模块,以使提醒模块根据调度信息数组生成提醒信息;如果否,则根据调度信息数组生成有向无环图。
在一个实施例中,确定模块,具体用于:读取有向无环图中从无作业开始节点至无作业结束节点的作业依赖关系数据;根据作业依赖关系数据确定分布式系统中各节点的作业调度信息。
在一个实施例中,调度模块,具体用于:根据依赖作业数据,查询目标节点的依赖节点的作业状态;若目标节点的所有依赖节点的作业状态为作业完成,则启动目标节点执行作业任务。
在一个实施例中,参见图10所示的另一种分布式作业调度装置结构框图,该装置还包括:监控模块75,用于:监控分布式系统中各节点的作业状态;若作业状态为作业故障,则向作业故障的节点发送作业重做指令,以使作业故障的节点重新启动作业执行程序;记录作业重做结果。
在一个实施例中,监控模块,还用于:在预设时长内,若作业故障的节点作业执行失败,则生成报警信息;将报警信息发送至报警模块,以使报警包括生成警报。
本发明实施例还提供一种计算机设备,参见图11所示的计算机设备结构示意框图,该计算机设备包括存储器81、处理器82及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述任一种分布式作业调度方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的计算机设备的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质存储有执行上述任一种分布式作业调度方法的计算机程序。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种分布式作业调度方法,其特征在于,包括:
获取分布式系统中各节点的作业依赖关系信息;
根据所述作业依赖关系信息生成有向无环图;
根据所述有向无环图确定作业调度信息;
按照所述作业调度信息调度所述分布式系统中各节点执行作业任务。
2.根据权利要求1所述的方法,其特征在于,所述作业依赖关系信息包括依赖作业数据、本节点作业数据和后置作业数据;
根据所述作业依赖关系信息生成有向无环图,包括:
生成无作业开始节点和无作业结束节点;所述无作业开始节点包括后置作业数据,所述无作业结束节点包括依赖作业数据;
若第一节点的后置作业数据与第二节点的依赖作业数据相同,则确定所述第一节点和所述第二节点存在依赖关系;
根据存在依赖关系的多个节点的作业依赖关系信息,确定有向无环图;所述有向无环图包括所述无作业开始节点和所述无作业结束节点。
3.根据权利要求2所述的方法,其特征在于,根据存在依赖关系的多个节点的作业依赖关系信息,确定有向无环图,包括:
根据存在依赖关系的多个节点的作业依赖关系信息,确定包括所述无作业开始节点和所述无作业结束节点的多个调度信息数组;
判断每个所述调度信息数组中是否存在相同节点;
如果是,则将所述调度信息数组发送至提醒模块,以使所述提醒模块根据所述调度信息数组生成提醒信息;
如果否,则根据所述调度信息数组生成有向无环图。
4.根据权利要求2所述的方法,其特征在于,根据所述有向无环图确定作业调度信息,包括:
读取所述有向无环图中从所述无作业开始节点至所述无作业结束节点的作业依赖关系数据;
根据所述作业依赖关系数据确定分布式系统中各节点的作业调度信息。
5.根据权利要求4所述的方法,其特征在于,按照所述作业调度信息调度所述分布式系统中各节点执行作业任务,包括:
根据所述依赖作业数据,查询目标节点的依赖节点的作业状态;
若所述目标节点的所有依赖节点的作业状态为作业完成,则启动所述目标节点执行作业任务。
6.根据权利要求1-5任一项所述的方法,其特征在于,还包括:
监控分布式系统中各节点的作业状态;
若所述作业状态为作业故障,则向作业故障的节点发送作业重做指令,以使所述作业故障的节点重新启动作业执行程序;
记录作业重做结果。
7.根据权利要求6所述的方法,其特征在于,还包括:
在预设时长内,若所述作业故障的节点作业执行失败,则生成报警信息;
将所述报警信息发送至报警模块,以使所述报警包括生成警报。
8.一种分布式作业调度装置,其特征在于,包括:
获取模块,用于获取分布式系统中各节点的作业依赖关系信息;
生成模块,用于根据所述作业依赖关系信息生成有向无环图;
确定模块,用于根据所述有向无环图确定作业调度信息;
调度模块,用于按照所述作业调度信息调度所述分布式系统中各节点执行作业任务。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一所述方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1至7任一所述方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010546104.8A CN111736969B (zh) | 2020-06-16 | 2020-06-16 | 分布式作业调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010546104.8A CN111736969B (zh) | 2020-06-16 | 2020-06-16 | 分布式作业调度方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111736969A true CN111736969A (zh) | 2020-10-02 |
CN111736969B CN111736969B (zh) | 2024-04-16 |
Family
ID=72649338
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010546104.8A Active CN111736969B (zh) | 2020-06-16 | 2020-06-16 | 分布式作业调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111736969B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112215587A (zh) * | 2020-12-11 | 2021-01-12 | 北京云测信息技术有限公司 | 多设备自动化执行业务流程交互任务的方法、装置和系统 |
CN112597442A (zh) * | 2020-12-30 | 2021-04-02 | 南方电网数字电网研究院有限公司 | 一种基于分布式的电力结算计算方法和系统 |
CN112799813A (zh) * | 2021-01-28 | 2021-05-14 | 中国工商银行股份有限公司 | 分布式作业服务调度方法、分布式服务器及业务终端 |
CN112925800A (zh) * | 2021-02-26 | 2021-06-08 | 平安普惠企业管理有限公司 | 数据依赖判断方法、装置、计算机设备及存储介质 |
CN113127175A (zh) * | 2021-05-18 | 2021-07-16 | 中国银行股份有限公司 | 主机作业调度运行方法及装置 |
CN113220431A (zh) * | 2021-04-29 | 2021-08-06 | 西安易联趣网络科技有限责任公司 | 跨云的分布式数据任务调度方法、设备及存储介质 |
CN113239028A (zh) * | 2021-05-10 | 2021-08-10 | 成都新潮传媒集团有限公司 | 一种数据仓库调度的数据修复方法、装置和可读存储介质 |
CN113238533A (zh) * | 2021-05-12 | 2021-08-10 | 广东美房智高机器人有限公司 | 一种移动机器人的作业任务动态调度下发系统及方法 |
CN113434360A (zh) * | 2021-06-23 | 2021-09-24 | 中国建设银行股份有限公司 | 一种作业运行监控的方法及系统 |
CN113741872A (zh) * | 2021-09-03 | 2021-12-03 | 上海新炬网络信息技术股份有限公司 | 基于作业调度的软件应用自动化发布方法 |
WO2022095848A1 (zh) * | 2020-11-04 | 2022-05-12 | 北京字节跳动网络技术有限公司 | 基线监控方法、装置、可读介质及电子设备 |
CN115904672A (zh) * | 2023-02-23 | 2023-04-04 | 云筑信息科技(成都)有限公司 | 一种用于检测大数据etl任务调度循环依赖的方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105893122A (zh) * | 2015-08-25 | 2016-08-24 | 乐视网信息技术(北京)股份有限公司 | 数据处理作业调度方法、装置及系统 |
CN108037991A (zh) * | 2017-12-26 | 2018-05-15 | 中山大学 | 一种支持作业依赖关系的定时作业调度方法及系统 |
CN110134505A (zh) * | 2019-05-15 | 2019-08-16 | 湖南麒麟信安科技有限公司 | 一种集群系统的分布式计算方法、系统及介质 |
CN110402431A (zh) * | 2017-03-23 | 2019-11-01 | 亚马逊科技公司 | 使用有向无环图进行事件驱动的调度 |
-
2020
- 2020-06-16 CN CN202010546104.8A patent/CN111736969B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105893122A (zh) * | 2015-08-25 | 2016-08-24 | 乐视网信息技术(北京)股份有限公司 | 数据处理作业调度方法、装置及系统 |
CN110402431A (zh) * | 2017-03-23 | 2019-11-01 | 亚马逊科技公司 | 使用有向无环图进行事件驱动的调度 |
CN108037991A (zh) * | 2017-12-26 | 2018-05-15 | 中山大学 | 一种支持作业依赖关系的定时作业调度方法及系统 |
CN110134505A (zh) * | 2019-05-15 | 2019-08-16 | 湖南麒麟信安科技有限公司 | 一种集群系统的分布式计算方法、系统及介质 |
Non-Patent Citations (1)
Title |
---|
马伟勤;李涓子;金正晔;丁昆;: "报表系统中依赖表格的重新计算算法", 计算机工程, no. 13, 5 July 2006 (2006-07-05) * |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022095848A1 (zh) * | 2020-11-04 | 2022-05-12 | 北京字节跳动网络技术有限公司 | 基线监控方法、装置、可读介质及电子设备 |
US11853792B2 (en) | 2020-11-04 | 2023-12-26 | Beijing Bytedance Network Technology Co., Ltd. | Baseline monitoring method and apparatus, readable medium, and electronic device |
CN112215587B (zh) * | 2020-12-11 | 2021-09-17 | 北京云测信息技术有限公司 | 多设备自动化执行业务流程交互任务的方法、装置和系统 |
CN112215587A (zh) * | 2020-12-11 | 2021-01-12 | 北京云测信息技术有限公司 | 多设备自动化执行业务流程交互任务的方法、装置和系统 |
CN112597442A (zh) * | 2020-12-30 | 2021-04-02 | 南方电网数字电网研究院有限公司 | 一种基于分布式的电力结算计算方法和系统 |
CN112799813A (zh) * | 2021-01-28 | 2021-05-14 | 中国工商银行股份有限公司 | 分布式作业服务调度方法、分布式服务器及业务终端 |
CN112925800A (zh) * | 2021-02-26 | 2021-06-08 | 平安普惠企业管理有限公司 | 数据依赖判断方法、装置、计算机设备及存储介质 |
CN113220431A (zh) * | 2021-04-29 | 2021-08-06 | 西安易联趣网络科技有限责任公司 | 跨云的分布式数据任务调度方法、设备及存储介质 |
CN113220431B (zh) * | 2021-04-29 | 2023-11-03 | 西安易联趣网络科技有限责任公司 | 跨云的分布式数据任务调度方法、设备及存储介质 |
CN113239028A (zh) * | 2021-05-10 | 2021-08-10 | 成都新潮传媒集团有限公司 | 一种数据仓库调度的数据修复方法、装置和可读存储介质 |
CN113239028B (zh) * | 2021-05-10 | 2023-03-14 | 成都新潮传媒集团有限公司 | 一种数据仓库调度的数据修复方法、装置和可读存储介质 |
CN113238533B (zh) * | 2021-05-12 | 2022-05-13 | 广东美房智高机器人有限公司 | 一种移动机器人的作业任务动态调度下发系统及方法 |
CN113238533A (zh) * | 2021-05-12 | 2021-08-10 | 广东美房智高机器人有限公司 | 一种移动机器人的作业任务动态调度下发系统及方法 |
CN113127175A (zh) * | 2021-05-18 | 2021-07-16 | 中国银行股份有限公司 | 主机作业调度运行方法及装置 |
CN113434360A (zh) * | 2021-06-23 | 2021-09-24 | 中国建设银行股份有限公司 | 一种作业运行监控的方法及系统 |
CN113434360B (zh) * | 2021-06-23 | 2024-04-19 | 中国建设银行股份有限公司 | 一种作业运行监控的方法及系统 |
CN113741872A (zh) * | 2021-09-03 | 2021-12-03 | 上海新炬网络信息技术股份有限公司 | 基于作业调度的软件应用自动化发布方法 |
CN113741872B (zh) * | 2021-09-03 | 2024-04-23 | 上海新炬网络信息技术股份有限公司 | 基于作业调度的软件应用自动化发布方法 |
CN115904672A (zh) * | 2023-02-23 | 2023-04-04 | 云筑信息科技(成都)有限公司 | 一种用于检测大数据etl任务调度循环依赖的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111736969B (zh) | 2024-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111736969A (zh) | 分布式作业调度方法及装置 | |
US10235252B1 (en) | Retroactive log retrieval service | |
Garg et al. | Fault tolerance in grid computing: state of the art and open issues | |
CN106547613B (zh) | 任务处理流程的调度及故障恢复方法 | |
CN112418438A (zh) | 基于容器的机器学习流程化训练任务执行方法及系统 | |
CN110895487B (zh) | 分布式任务调度系统 | |
CN111143133B (zh) | 虚拟机备份方法和备份虚拟机恢复方法 | |
GB2263988A (en) | Computer aided work-flow management | |
CN110895488B (zh) | 任务调度方法及装置 | |
CN111984390A (zh) | 任务调度方法、装置、设备及存储介质 | |
CN110895484A (zh) | 任务调度方法及装置 | |
CN111400011B (zh) | 一种实时任务调度方法、系统、设备及可读存储介质 | |
CN110362315B (zh) | 基于dag的软件系统调度方法及装置 | |
CN112035233A (zh) | 大数据批量作业任务调度方法及装置 | |
CN110895486B (zh) | 分布式任务调度系统 | |
WO2020232951A1 (zh) | 一种任务执行方法及装置 | |
CN110895483A (zh) | 任务恢复方法及装置 | |
CN111190732A (zh) | 定时任务处理系统及方法、存储介质和电子设备 | |
CN112131315A (zh) | 多任务并行开发下的数据库同步方法及装置 | |
CN111666141A (zh) | 任务调度方法、装置、设备及计算机存储介质 | |
CN114090198A (zh) | 分布式任务调度方法、装置、电子设备及存储介质 | |
CN114139923A (zh) | 任务关联性分析方法、装置及计算机可读存储介质 | |
CN111147541B (zh) | 基于参数服务器的节点处理方法、装置、设备及存储介质 | |
CN110019144A (zh) | 一种大数据平台数据运维的方法和系统 | |
CN110895485A (zh) | 任务调度系统 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |