基于有向无环图和流计算的任务调度方法及系统技术方案

技术编号:37665404 阅读:21 留言:0更新日期:2023-05-26 04:23
本发明专利技术公开了基于有向无环图和流计算的任务调度方法及系统,属于任务调度管理技术领域,要解决的技术问题为如何将有向无环图和流计算结合对零散化任务进行组织调度。包括如下步骤:基于流计算节点的工作任务以及节点之间的依赖关系,解析工作关系,生成用于任务调度的有向无环图,所述有向无环图中定义有任务执行顺序以及任务之间执行关系;基于有向无环图中邻接的入边和出边的数量,自动进入merge和fanout,执行任务调度;在执行任务调度过程中,提供有向无环图打印服务,通过有向无环图打印服务展示任务执行顺序和任务之间依赖关系。服务展示任务执行顺序和任务之间依赖关系。服务展示任务执行顺序和任务之间依赖关系。

【技术实现步骤摘要】
基于有向无环图和流计算的任务调度方法及系统


[0001]本专利技术涉及任务调度管理
,具体地说是基于有向无环图和流计算的任务调度方法及系统。

技术介绍

[0002]在计算领域,基于有向无环图(以下简称dag)的计算模型的应用非常广泛,比如spark,使用dag来控制并有序地执行任务,又比如Google开源的机器学习框架tensorflow,在设计和使用中也基于了dag。在这两个框架中,用户首先写代码定义出一个dag,然后执行这个dag去得到结果
[0003]dag具有完整严密的拓扑性质,同时又没有过多的模型上的限制,使其具有很强的流程表达能力。基于这一特点,在很多需要对零散化任务进行组织和控制的场景中,应用非常广泛。
[0004]对于一组零散化任务组成的一个大任务,如果用dag的形式来组织的话,只需要按照拓扑顺序对这些零散的小任务进行执行,就可以得到正确的结果。
[0005]如何将有向无环图和流计算结合对零散化任务进行组织调度,是需要解决的技术问题。

技术实现思路

[0006]本专利技术的技术任务是针对以上不足,提供基于有向无环图和流计算的任务调度方法及系统,来解决如何将有向无环图和流计算结合对零散化任务进行组织调度的技术问题。
[0007]第一方面,本专利技术一种基于有向无环图和流计算的任务调度方法,包括如下步骤:
[0008]基于流计算节点的工作任务以及节点之间的依赖关系,解析工作关系,生成用于任务调度的有向无环图,所述有向无环图中定义有任务执行顺序以及任务之间执行关系;
[0009]基于有向无环图中邻接的入边和出边的数量,自动进入merge和fanout,执行任务调度;
[0010]在执行任务调度过程中,提供有向无环图打印服务,通过有向无环图打印服务展示任务执行顺序和任务之间依赖关系。
[0011]作为优选,所述有向无环图中节点包括源节点、流节点和目标节点;
[0012]所述源节点为流计算的数据源,包括kafka、redis以及txt文件;
[0013]所述流节点为流计算的数据处理管道;
[0014]所述目标节点为流计算的输出目标。
[0015]作为优选,基于有向无环图中邻接的入边和出边的数量,自动进入merge和fanout,执行任务调度,遵循如下规则:
[0016]如果某一个节点邻接的入边的数量大于1,那么所述节点的在执行节点任务之前,会先进行merge;如果某一个节点邻接的出边的数量大于1,那么所述节点的在执行节点任
务之后,会进行fanout。
[0017]作为优选,所述流计算为go

streams流计算。
[0018]第二方面,本专利技术一种基于有向无环图和流计算的任务调度系统,用于通过如第一方面任一项所述的基于有向无环图和流计算的任务调度方法对零散任务进行调度,所述系统包括:
[0019]有向无环图构建模块,所述有向无环图构建模块用于基于流计算节点的工作任务以及节点之间的依赖关系,解析工作关系,生成用于任务调度的有向无环图,所述有向无环图中定义有任务执行顺序以及任务之间执行关系;
[0020]任务调度模块,所述任务调度模块用于基于有向无环图中邻接的入边和出边的数量,自动进入merge和fanout,执行任务调度;
[0021]展示模块,所述展示模块用于在执行任务调度过程中,提供有向无环图打印服务,通过有向无环图打印服务展示任务执行顺序和任务之间依赖关系。
[0022]作为优选,所述有向无环图中节点包括源节点、流节点和目标节点;
[0023]所述源节点为流计算的数据源,包括kafka、redis以及txt文件;
[0024]所述流节点为流计算的数据处理管道;
[0025]所述目标节点为流计算的输出目标。
[0026]作为优选,基于有向无环图中邻接的入边和出边的数量,自动进入merge和fanout,执行任务调度,所述任务调度模块遵循如下规则:
[0027]如果某一个节点邻接的入边的数量大于1,那么所述节点的在执行节点任务之前,会先进行merge;如果某一个节点邻接的出边的数量大于1,那么所述节点的在执行节点任务之后,会进行fanout。
[0028]作为优选,所述流计算为go

streams流计算框架。
[0029]本专利技术的基于有向无环图和流计算的任务调度方法及系统具有以下优点:
[0030]1、基于有向无环图和流计算结合的设计方法,主要通过将流计算的各个节点的合理做有向无环图的任务调度,充分利用多核CPU,提高整个任务流的执行速度;
[0031]2、数字能源平台有很多流计算规则,还有基于规则的DSL,这就导致规则数不胜数,通过构建有向无环图进行任务调度,可以将规则进行统一的任务调度,极大提高了代码简洁性。
附图说明
[0032]为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0033]下面结合附图对本专利技术进一步说明。
[0034]图1为实施例1基于有向无环图和流计算的任务调度方法的流程框图;
[0035]图2为实施例1基于有向无环图和流计算的任务调度方法中任务前后顺序的依赖关系框图;
[0036]图3为实施例1基于有向无环图和流计算的任务调度方法中基于有向无环图执行
任务的示意图。
具体实施方式
[0037]下面结合附图和具体实施例对本专利技术作进一步说明,以使本领域的技术人员可以更好地理解本专利技术并能予以实施,但所举实施例不作为对本专利技术的限定,在不冲突的情况下,本专利技术实施例以及实施例中的技术特征可以相互结合。
[0038]本专利技术实施例提供基于有向无环图和流计算的任务调度方法及系统,用于解决如何将有向无环图和流计算结合对零散化任务进行组织调度的技术问题。
[0039]实施例1:
[0040]本专利技术一种基于有向无环图和流计算的任务调度方法,将有有向无环图与go

streams流计算框架结合,实现零散任务的任务组织和调度,该方法包括如下步骤:
[0041]S100、基于流计算节点之间的依赖关系以及不同工作任务,解析工作关系,生成用于任务调度的有向无环图,所述有向无环图中定义有任务执行顺序以及任务之间执行关系;
[0042]S200、基于有向无环图中邻接的入边和出边的数量,自动进入merge和fanout,执行任务调度;
[0043]S300、在执行任务调度过程中,提供有向无环图打印服务,通过有向无环图打印服务展示任务执行顺序和任务之间依赖关系。
[0044]本实施例中,使用者提供流计算节点的任务工作和节点间的依赖关系,基于本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于有向无环图和流计算的任务调度方法,其特征在于,包括如下步骤:基于流计算节点的工作任务以及节点之间的依赖关系,解析工作关系,生成用于任务调度的有向无环图,所述有向无环图中定义有任务执行顺序以及任务之间执行关系;基于有向无环图中邻接的入边和出边的数量,自动进入merge和fanout,执行任务调度;在执行任务调度过程中,提供有向无环图打印服务,通过有向无环图打印服务展示任务执行顺序和任务之间依赖关系。2.根据要求1所述的基于有向无环图和流计算的任务调度方法,其特征在于,所述有向无环图中节点包括源节点、流节点和目标节点;所述源节点为流计算的数据源,包括kafka、redis以及txt文件;所述流节点为流计算的数据处理管道;所述目标节点为流计算的输出目标。3.根据要求1所述的基于有向无环图和流计算的任务调度方法,其特征在于,基于有向无环图中邻接的入边和出边的数量,自动进入merge和fanout,执行任务调度,遵循如下规则:如果某一个节点邻接的入边的数量大于1,那么所述节点的在执行节点任务之前,会先进行merge;如果某一个节点邻接的出边的数量大于1,那么所述节点的在执行节点任务之后,会进行fanout。4.根据要求1所述的基于有向无环图和流计算的任务调度方法,其特征在于,所述流计算为go

streams流计算。5.一种基于有向无环图和流计算的任务调度系统,其特征在于,用于通过如权利要求1

4任一项所述的基于有向无环图和流计算...

【专利技术属性】
技术研发人员:王泽坤
申请(专利权)人:上海沄熹科技有限公司
类型:发明
国别省市:

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

1