分布式作业调度方法及装置制造方法及图纸

技术编号:25834516 阅读:16 留言:0更新日期:2020-10-02 14:15
本发明专利技术提供了一种分布式作业调度方法及装置,涉及作业调度技术领域,该方法包括:获取分布式系统中各节点的作业依赖关系信息;根据作业依赖关系信息生成有向无环图;根据有向无环图确定作业调度信息;按照作业调度信息调度分布式系统中各节点执行作业任务。本发明专利技术可以减小分布式系统各个计算机节点上的作业的循环依赖关系的影响,保证按照作业间的依赖顺序执行作业,保证作业的及时高效执行。

【技术实现步骤摘要】
分布式作业调度方法及装置
本专利技术涉及作业调度
,尤其是涉及一种分布式作业调度方法及装置。
技术介绍
在分布式应用系统(特别是分布式批处理系统)中,经常需要在分布式系统的各个计算机节点上执行批量处理作业。由于各个批处理作业可能存在先后顺序和依赖关系,若作业间存在循环依赖关系,则会导致现有分布式系统调度过程复杂,容易出现调度错误,进而影响分布式系统中作业(尤其是批处理作业)的执行进度。
技术实现思路
本专利技术提供了一种分布式作业调度方法及装置,可以减小分布式系统各个计算机节点上的作业的循环依赖关系的影响,保证分布式系统中作业的及时高效执行。第一方面,本专利技术实施例提供了一种分布式作业调度方法,该方法包括:获取分布式系统中各节点的作业依赖关系信息;根据所述作业依赖关系信息生成有向无环图;根据所述有向无环图确定作业调度信息;按照所述作业调度信息调度所述分布式系统中各节点执行作业任务。第二方面,本专利技术实施例还提供一种分布式作业调度装置,该装置包括:获取模块,用于获取分布式系统中各节点的作业依赖关系信息;生成模块,用于根据所述作业依赖关系信息生成有向无环图;确定模块,用于根据所述有向无环图确定作业调度信息;调度模块,用于按照所述作业调度信息调度所述分布式系统中各节点执行作业任务。第三方面,本专利技术实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述分布式作业调度方法。第四方面,本专利技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述分布式作业调度方法的计算机程序。本专利技术实施例带来了以下有益效果:本专利技术实施例提供了一种分布式作业调度方案,该方案首先获取分布式系统中各节点的作业依赖关系信息,之后,根据作业依赖关系信息生成有向无环图,从而,消除分布式系统中各节点间作业的循环依赖关系,根据有向无环图,确定作业调度信息,再按照作业调度信息调度分布式系统中各节点执行作业任务。本专利技术实施例可以减小分布式系统各个计算机节点上的作业的循环依赖关系的影响,保证按照作业间的依赖顺序执行作业,保证作业的及时高效执行。本专利技术的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本专利技术而了解。本专利技术的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。为使本专利技术的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。附图说明为了更清楚地说明本专利技术具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的分布式作业调度方法流程图;图2为本专利技术实施例提供的分布式作业调度方法一种实施流程图;图3为本专利技术实施例提供的分布式作业调度方法一种实施系统结构框图图4为本专利技术实施例提供的分布式作业调度方法实现的一种功能结构图;图5为本专利技术实施例提供的分布式作业调度方法工作流程图;图6为本专利技术实施例提供的分布式作业调度方法另一种实施流程图;图7为本专利技术实施例提供的一种节点间依赖关系图;图8为本专利技术实施例提供的另一种节点间依赖关系图;图9为本专利技术实施例提供的一种分布式作业调度装置结构框图;图10为本专利技术实施例提供的另一种分布式作业调度装置结构框图;图11为本专利技术实施例提供的计算机设备结构框图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。在现有方案中,SpringBatch是一个轻量级的、完善的批处理框架,旨在帮助企业建立健壮、高效的批处理应用。SpringBatch是Spring的一个子项目,使用Java语言并基于Spring框架为基础开发,SpringBatch提供了大量可重用的组件,包括了日志、追踪、事务、任务作业统计、任务重启、跳过、重复、资源管理。通过SpringBatch能够支持简单的、复杂的和大数据量的批处理作业。SpringBatch是一个批处理应用框架,不是调度框架,但需要和调度框架合作来构建完成的批处理任务。它只关注批处理任务相关的问题,如事务、并发、监控、执行等,并不提供相应的调度功能。针对时间调度的需求,经常使用的是Linux/unix系统的crontab命令,crontab命令可以让使用者在固定时间或固定时间间隔执行程序,crontab命令的时间调度策略比较完善,可以配置为每分钟/小时/天/周/月/年的某个时刻,也可以配置每隔多长时间执行。Quarz是OpenSymphony开源组织在作业调度领域又一个开源项目,是一个完全由java编写的开源作业调度框架。在Java应用中,一般会使用Quarz来解决作业调度问题,Quarz也可以实现定时作业调度。以上SpringBatch、crontab、Quarz几种方案存在以下缺陷:1、只能控制单个作业的时间调度,不能处理存在依赖关系的作业,包括同机和跨机部署执行的作业,而随着系统复杂性和计算机节点的增加,不可避免地需要将作业拆分,并分散到各个计算机节点执行,导致各个计算机节点上的作业间存在先后顺序和依赖关系;2、节点上的作业是无状态的,各个计算机节点上的作业只能机械的按照预定周期进行执行,不能适用这类场景:按周期执行的作业不能记录作业启动、作业执行故障、作业执行失败、作业执行成功的状态,不能根据作业执行的状态重新执行作业,每个作业的执行状态也没有保存;3、不支持分布式系统的作业调度,没有建立分布式系统各个计算节点之间的作业调度关系,无法在分布式系统各个计算节点之间的作业进行通讯,发布作业执行进度信息;4、不支持分布式系统的作业监控,无法跟踪分布式系统各个计算节点之间的作业执行情况,在分布式系统各个计算节点之上的作业执行异常时,无法对系统运维人员进行报警。基于此,本专利技术实施例提供的一种分布式作业调度方法及装置,该方法可以更高效地完成在分布式系统的各个计算机节点上存在依赖关系的批处理作业的执行,并跟踪分布式系统各个计算节点之间的作业执行情况,在各个计算节点之上的作业执行异常时,对系统运维人员进行报警。为便于对本实施例进行理解,首先对本专利技术实施例所公开的一种分布式作业调度方法进行详细介绍。首先,对涉及到的术语进行解释。分布式系统:在一个分布式系统中,一组独立的计算机展现给用户的是一个统一的整体,就好像是一个系本文档来自技高网...

【技术保护点】
1.一种分布式作业调度方法,其特征在于,包括:/n获取分布式系统中各节点的作业依赖关系信息;/n根据所述作业依赖关系信息生成有向无环图;/n根据所述有向无环图确定作业调度信息;/n按照所述作业调度信息调度所述分布式系统中各节点执行作业任务。/n

【技术特征摘要】
1.一种分布式作业调度方法,其特征在于,包括:
获取分布式系统中各节点的作业依赖关系信息;
根据所述作业依赖关系信息生成有向无环图;
根据所述有向无环图确定作业调度信息;
按照所述作业调度信息调度所述分布式系统中各节点执行作业任务。


2.根据权利要求1所述的方法,其特征在于,所述作业依赖关系信息包括依赖作业数据、本节点作业数据和后置作业数据;
根据所述作业依赖关系信息生成有向无环图,包括:
生成无作业开始节点和无作业结束节点;所述无作业开始节点包括后置作业数据,所述无作业结束节点包括依赖作业数据;
若第一节点的后置作业数据与第二节点的依赖作业数据相同,则确定所述第一节点和所述第二节点存在依赖关系;
根据存在依赖关系的多个节点的作业依赖关系信息,确定有向无环图;所述有向无环图包括所述无作业开始节点和所述无作业结束节点。


3.根据权利要求2所述的方法,其特征在于,根据存在依赖关系的多个节点的作业依赖关系信息,确定有向无环图,包括:
根据存在依赖关系的多个节点的作业依赖关系信息,确定包括所述无作业开始节点和所述无作业结束节点的多个调度信息数组;
判断每个所述调度信息数组中是否存在相同节点;
如果是,则将所述调度信息数组发送至提醒模块,以使所述提醒模块根据所述调度信息数组生成提醒信息;
如果否,则根据所述调度信息数组生成有向无环图。


4.根据权利要求2所述的方法,其特征在于,根据所述有向无环图确定作业调度信息,包括:
读取所述有向无环图中从所述无作业开始节点至所述无作业结束节点的作业依赖关系数据;
根据所述作...

【专利技术属性】
技术研发人员:王同庆
申请(专利权)人:中国银行股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1