CN107273193A - 一种基于dag的面向多计算框架的数据处理方法及系统 - Google Patents
一种基于dag的面向多计算框架的数据处理方法及系统 Download PDFInfo
- Publication number
- CN107273193A CN107273193A CN201710295064.2A CN201710295064A CN107273193A CN 107273193 A CN107273193 A CN 107273193A CN 201710295064 A CN201710295064 A CN 201710295064A CN 107273193 A CN107273193 A CN 107273193A
- Authority
- CN
- China
- Prior art keywords
- dag
- operator
- scheduler
- scene
- subjob
- 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
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于DAG的面向多计算框架的数据处理方法及系统。本方法为1)用户根据目标计算场景选取算子生成该目标计算场景;然后向管理器发送保存场景信息的请求;2)管理器将场景信息保存到场景表中;当收到该目标计算场景的执行请求后,读取该场景表生成包含该目标计算场景信息的作业并发送给调度器;3)调度器根据收到的作业生成对应的算子DAG并验证;对于验证通过的算子生成子作业DAG;然后根据生成的子作业DAG确定每一执行阶段并将其发送给执行器;4)执行器将调度器下发的每一执行阶段的子作业解释为该计算框架下的计算逻辑并触发计算;然后将计算结果提交给调度器。本发明提高了计算框架的计算效率。
Description
技术领域
本发明涉及一种基于DAG的面向多计算框架的数据处理方法及系统,属于计算机软件技术领域。
背景技术
目前的数据处理系统大都是针对某一个特定的计算框架,或某两个特定的计算框架开发的。主要针对计算框架所处的集群情况进行模块的开发和调优。注重时间信息同步和日志获取这两个主要功能。数据处理系统还没有明确引入DAG(Directed acyclicgraph,有向无环图)概念,目前有向无环图被广泛应用在仿真任务并行度分析和动态重路由调度等方面。
目前的数据处理系统与计算框架绑定,不具有对于计算框架的扩展性。同时,针对计算框架开发,使数据处理系统与底层计算框架绑定,耦合度高,向其他计算平台移植的难度大。以Spark为主的计算框架大都采用DAG做其主要的逻辑计划和物理计划载体,通过DAG特有的属性完成计算。
发明内容
本发明的目的在于提供一种基于DAG的面向多计算框架的数据处理方法及系统。通过实现指定的编程接口,使用户的开发脱离计算框架,降低开发难度,同时实现计算框架的可插拔。本发明通过构建算子之间的DAG,根据规则切分,合并,生成子作业的DAG,减少子作业数量,减少数据落地次数,提高计算框架的计算效率。
本发明的技术方案为:
一种基于DAG的面向多计算框架的数据处理方法,其步骤为:
1)用户根据目标计算场景选取算子,然后对选取的算子的输入输出进行连接并配置相应的参数,得到该目标计算场景;然后向管理器发送保存场景信息的请求;
2)管理器接收该请求,将场景信息保存到场景表中;管理器收到该目标计算场景的执行请求后,读取该场景表生成包含该目标计算场景信息的作业并发送给调度器;
3)调度器根据收到的作业生成对应的算子DAG并验证;对于算子DAG验证通过的算子生成子作业DAG;然后根据生成的子作业DAG确定每一执行阶段并将其发送给执行器;
4)执行器对选定的计算框架进行适配,然后将调度器下发的每一执行阶段的子作业解释为该计算框架下的计算逻辑并触发计算;然后将计算结果提交给调度器。
进一步的,所述调度器通过判断算子DAG的数据结构正确性和逻辑正确性验证算子DAG;其中,数据结构正确性即验证算子DAG是否满足有向无环图要求,逻辑正确性即验证算子前后连接和位置的正确性。
进一步的,所述调度器将同类算子合并在一起,生成子作业DAG;所述调度器对非同类算子进行切分,生成子作业DAG;其中,每一个子作业DAG中包含一个或多个算子。
进一步的,所述执行器根据生成的子作业DAG确定每一执行阶段的方法为:所述执行器对子作业DAG按广度优先的方式进行遍历,将无父节点的节点归并为同一个执行阶段,然后逻辑上删除无父结点且已经归并为同一个执行阶段的节点,对新暴露出来的无父结点且未归并到任何执行阶段中的节点进行归并操作,直至子作业DAG为空,从而确定每一执行阶段,每一个执行阶段中包含一个或多个子作业。
进一步的,所述管理器还保存场景执行后得到的执行实例和针对需按时执行的场景的定时执行信息;每一所述执行实例为一作业;所述作业包括场景信息、场景参数、算子信息、算子参数。
一种基于DAG的面向多计算框架的数据处理系统,其特征在于,包括web页面、管理器、调度器和执行器;其中,
web页面,用于为用户提供可视化的图形用户界面,根据目标计算场景选取算子,然后对选取的算子的输入输出进行连接并配置相应的参数,得到该目标计算场景;
管理器,用于保存算子信息、目标计算场景信息、用户信息和向调度器下发作业;
调度器,用于根据收到的作业生成对应的算子DAG并验证;对于算子DAG验证通过的算子生成子作业DAG;然后根据生成的子作业DAG确定每一执行阶段并将其发送给执行器;
执行器,用于对选定的计算框架进行适配,以及将调度器下发的每一执行阶段的子作业解释为该计算框架下的计算逻辑并触发计算;然后将计算结果提交给调度器。
本发明提供的基于DAG的面向多计算框架的数据处理系统主要包括:web页面、管理器、调度器和执行器。各部分以xml文件的形式交互,异步通信。
web页面:为用户提供可视化的图形用户界面。用户通过对算子状态为使用中的在算子列表中展示的算子的拖拽,根据目标计算场景,选取算子,然后对选取的算子的输入输出进行连接并配置相应的参数,得到该目标计算场景。对于计算场景,用户可以即时执行该场景,也可以配置定时执行的Quartz参数。系统为用户预制算子,同时,也为用户提供不同类型算子的编程接口,方便用户的扩充,和在页面注册。
管理器:为用户保存算子信息,在web页面得到的目标场景信息,用户信息,场景执行后得到的执行实例和针对需按时执行的场景的定时执行信息,为web页面提供后台支持。管理器除了为用户提供对数据处理系统的管理功能外,还为用户提供执行场景的功能,向调度器下发作业xml。场景的一个执行实例为一个作业。作业包括场景信息,场景参数,算子信息,算子参数,这些参数以xml的形式组织。
调度器:获取管理器下发的作业xml,生成对应的算子DAG,判断算子DAG数据结构和逻辑上的正确性。数据结构正确性即验证算子DAG是否满足有向无环图要求,逻辑正确性即验证算子前后连接和位置的正确性。若算子DAG不能通过验证,调度器则向管理器报错。对于正确的算子DAG,按照同类算子合并、非同类算子切分的规则对算子DAG进行切分,合并,生成子作业DAG。每一个子作业DAG中,都包含一个或多个算子。通过子作业DAG,按广度优先遍历的方式,将无父节点的节点归并为同一个执行阶段,而后逻辑上删除这些无父结点且已经归并为同一个执行阶段的节点,对新暴露出来的无父结点且未归并到任何执行阶段中的节点进行上述归并操作,直至子作业DAG为空,从而确定了计算的每一个执行阶段。每一个执行阶段中都包含一个或多个子作业,按序向执行器下发。
执行器:完成对不同计算框架的适配——执行器根据用户选定的计算框架,未指定则根据算子选型,判断此作业的最佳计算框架,进行适配,获取调度器下发的子作业xml,完成计算的搭建——将作业解释为对应计算框架下的计算逻辑,并触发计算。计算结束后,将计算结果提交调度器。
与现有技术相比,本发明具有如下优势:
1、算子开发脱离计算框架,降低算子开发难度,实现了计算框架的可插拔;
2、通过切分,合并,生成子作业DAG,减少数据落地次数,提高了计算框架的计算效率。
附图说明
图1是本发明Spark计算框架下提交即时执行的作业的流程图。
具体实施方式
下面结合附图和具体实施例对本发明做进一步详细的说明,但不以任何方式限制本发明的范围。
实例1基于DAG的面向多计算框架的数据处理系统
本发明的流程如图1所示,以用户在Spark计算框架下提交即时执行的作业为例:
1)用户登录,选择新建场景,配置必要信息,不配置Quartz参数,选择Spark计算框架,在界面上拖拽算子,连接输入输出端口,配置算子参数,保存场景。页面向管理器发送保存场景信息的请求,该请求包括场景信息,场景参数信息,算子信息,算子参数信息;
2)管理器接收页面请求,将场景信息保存到场景表中;
3)用户在页面点击运行,页面向管理器提交场景执行请求;
4)管理器接收页面场景执行请求,读场景表,向调度器提交包含该场景所有信息的作业;
5)调度器接收作业任务,生成算子DAG,对生成的算子DAG做验证;
6)调度器将验证通过的算子DAG按规则进行切分,合并,生成子作业DAG,并生成执行执行阶段Stage;
7)调度器通过解析用户配置的计算框架向Spark计算框架的执行器按Stage提交子作业;
8)执行器接收作业执行请求,按照与调度器相同的规则生成算子DAG,触发计算,并将计算结果提交调度器;
9)调度器接收计算结果,判断Stage是否执行结束,若未结束则等待执行器执行,若结束启动下一个Stage;
10)当所有Stage均已经正确结束,调度器向管理器提交作业的执行结果,并清理临时数据;
11)管理器接收执行结果,更新数据库,向页面提交;
12)页面刷新执行状态。
实例2基于DAG的面向多计算框架的数据处理系统
以用户在Spark计算框架下提交定时执行的作业为例:
1)用户登录,选择新建场景,配置必要信息,选择配置Quartz参数,选择Spark计算框架,在界面上拖拽算子,连接输入输出端口,配置算子参数,保存场景。页面向管理器发送请求;
2)管理器接收页面请求,将场景信息保存到场景表中;
3)管理器监控定时执行作业,发现该作业需要执行,读场景表,向调度器提交包含该场景所有信息的作业;
4)调度器接收任务,生成算子DAG,对生成的算子DAG做验证;
5)调度器将验证通过的算子DAG按规则进行切分,合并,生成子作业DAG,并生成执行Stage;
6)调度器通过解析用户配置的计算框架向Spark计算框架的执行器按Stage提交子作业;
7)执行器接收作业执行请求,按照与调度器相同的规则生成算子DAG,触发计算,并将计算结果提交调度器;
8)调度器接收计算结果,判断Stage是否执行结束,若未结束则等待执行器执行,若结束启动下一个Stage;
9)当所有Stage均已经正确结束,调度器向管理器提交作业的执行结果,并清理临时数据;
10)管理器接收执行结果,更新数据库,向页面提交;
11)页面刷新执行状态。
实例3基于DAG的面向多计算框架的数据处理系统
以用户在Spark计算框架下提交即时执行的错误任务为例:
1)用户登录,选择新建场景,配置必要信息,选择不配置Quartz参数,选择Spark计算框架,在界面上拖拽算子,连接输入输出端口,配置算子参数,保存场景。页面向管理器发送请求;
2)管理器接收页面请求,将场景信息保存到场景表中;
3)用户在页面点击运行,页面向管理器提交请求;
4)管理器接收页面请求,读场景表,向调度器提交包含该场景全部信息的作业;
5)调度器接收任务,生成算子DAG,对生成的算子DAG做验证;
6)调度器将验证通过的算子DAG按规则进行切分,合并,生成子作业DAG,并生成执行Stage;
7)调度器通过解析用户配置的计算框架向Spark计算框架的执行器按Stage提交子作业;
8)执行器接收作业执行请求,按照与调度器相同的规则生成算子DAG,触发计算,并将计算结果提交调度器;
9)调度器接收计算结果,判断Stage是否正确执行结束,发现执行器报错;
10)调度器取消之后的所有Stage,向管理器提交执行结果;
11)管理器接收执行结果,更新数据库,向页面提交;
12)页面刷新执行状态。
Claims (10)
1.一种基于DAG的面向多计算框架的数据处理方法,其步骤为:
1)用户根据目标计算场景选取算子,然后对选取的算子的输入输出进行连接并配置相应的参数,得到该目标计算场景;然后向管理器发送保存场景信息的请求;
2)管理器接收该请求,将场景信息保存到场景表中;管理器收到该目标计算场景的执行请求后,读取该场景表生成包含该目标计算场景信息的作业并发送给调度器;
3)调度器根据收到的作业生成对应的算子DAG并验证;对于算子DAG验证通过的算子生成子作业DAG;然后根据生成的子作业DAG确定每一执行阶段并将其发送给执行器;
4)执行器对选定的计算框架进行适配,然后将调度器下发的每一执行阶段的子作业解释为该计算框架下的计算逻辑并触发计算;然后将计算结果提交给调度器。
2.如权利要求1所述的方法,其特征在于,所述调度器通过判断算子DAG的数据结构正确性和逻辑正确性验证算子DAG;其中,数据结构正确性即验证算子DAG是否满足有向无环图要求,逻辑正确性即验证算子前后连接和位置的正确性。
3.如权利要求1或2所述的方法,其特征在于,所述调度器将同类算子合并在一起,生成子作业DAG;所述调度器对非同类算子进行切分,生成子作业DAG;其中,每一个子作业DAG中包含一个或多个算子。
4.如权利要求1或2所述的方法,其特征在于,所述执行器根据生成的子作业DAG确定每一执行阶段的方法为:所述执行器对子作业DAG按广度优先的方式进行遍历,将无父节点的节点归并为同一个执行阶段,然后逻辑上删除无父结点且已经归并为同一个执行阶段的节点,对新暴露出来的无父结点且未归并到任何执行阶段中的节点进行归并操作,直至子作业DAG为空,从而确定每一执行阶段,每一个执行阶段中包含一个或多个子作业。
5.如权利要求1所述的方法,其特征在于,所述管理器还保存场景执行后得到的执行实例和针对需按时执行的场景的定时执行信息;每一所述执行实例为一作业;所述作业包括场景信息、场景参数、算子信息、算子参数。
6.一种基于DAG的面向多计算框架的数据处理系统,其特征在于,包括web页面、管理器、调度器和执行器;其中,
web页面,用于为用户提供可视化的图形用户界面,根据目标计算场景选取算子,然后对选取的算子的输入输出进行连接并配置相应的参数,得到该目标计算场景;
管理器,用于保存算子信息、目标计算场景信息、用户信息和向调度器下发作业;
调度器,用于根据收到的作业生成对应的算子DAG并验证;对于算子DAG验证通过的算子生成子作业DAG;然后根据生成的子作业DAG确定每一执行阶段并将其发送给执行器;
执行器,用于对选定的计算框架进行适配,以及将调度器下发的每一执行阶段的子作业解释为该计算框架下的计算逻辑并触发计算;然后将计算结果提交给调度器。
7.如权利要求6所述的系统,其特征在于,所述管理器还保存场景执行后得到的执行实例和针对需按时执行的场景的定时执行信息;每一所述执行实例为一作业;所述作业包括场景信息、场景参数、算子信息、算子参数。
8.如权利要求6所述的系统,其特征在于,所述调度器通过判断算子DAG的数据结构正确性和逻辑正确性验证算子DAG;其中,数据结构正确性即验证算子DAG是否满足有向无环图要求,逻辑正确性即验证算子前后连接和位置的正确性。
9.如权利要求6或7或8所述的系统,其特征在于,所述调度器将同类算子合并在一起,生成子作业DAG;所述调度器对非同类算子进行切分,生成子作业DAG;其中,每一个子作业DAG中包含一个或多个算子。
10.如权利要求6或7或8所述的系统,其特征在于,所述执行器对子作业DAG按广度优先的方式进行遍历,将无父节点的节点归并为同一个执行阶段,然后逻辑上删除无父结点且已经归并为同一个执行阶段的节点,对新暴露出来的无父结点且未归并到任何执行阶段中的节点进行归并操作,直至子作业DAG为空,从而确定每一执行阶段,每一个执行阶段中包含一个或多个子作业。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710295064.2A CN107273193A (zh) | 2017-04-28 | 2017-04-28 | 一种基于dag的面向多计算框架的数据处理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710295064.2A CN107273193A (zh) | 2017-04-28 | 2017-04-28 | 一种基于dag的面向多计算框架的数据处理方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107273193A true CN107273193A (zh) | 2017-10-20 |
Family
ID=60073615
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710295064.2A Pending CN107273193A (zh) | 2017-04-28 | 2017-04-28 | 一种基于dag的面向多计算框架的数据处理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107273193A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110825511A (zh) * | 2019-11-07 | 2020-02-21 | 北京集奥聚合科技有限公司 | 一种基于建模平台模型运行流程调度方法 |
WO2020207393A1 (zh) * | 2019-04-09 | 2020-10-15 | 华为技术有限公司 | 算子运算调度方法和装置 |
CN113127182A (zh) * | 2019-12-30 | 2021-07-16 | 中国移动通信集团上海有限公司 | 深度学习调度配置系统及方法 |
CN113626116A (zh) * | 2021-07-20 | 2021-11-09 | 中国电子科技集团公司电子科学研究院 | 智能学习系统及数据分析方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1845075A (zh) * | 2006-05-11 | 2006-10-11 | 上海交通大学 | 面向服务的网格高性能计算作业调度方法 |
CN102256369A (zh) * | 2011-06-28 | 2011-11-23 | 武汉理工大学 | 基于能量和通信开销的无线传感器网格任务调度方法 |
US8856374B2 (en) * | 2010-11-30 | 2014-10-07 | Hstreaming, Inc. | Methods and systems for reconfiguration and repartitioning of a parallel distributed stream process |
KR20160112830A (ko) * | 2015-03-20 | 2016-09-28 | 한국전자통신연구원 | 최적화된 태스크 기반 데이터 처리 서비스 생성 방법 및 장치 |
CN106293892A (zh) * | 2015-06-26 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 分布式流计算系统、方法和装置 |
-
2017
- 2017-04-28 CN CN201710295064.2A patent/CN107273193A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1845075A (zh) * | 2006-05-11 | 2006-10-11 | 上海交通大学 | 面向服务的网格高性能计算作业调度方法 |
US8856374B2 (en) * | 2010-11-30 | 2014-10-07 | Hstreaming, Inc. | Methods and systems for reconfiguration and repartitioning of a parallel distributed stream process |
CN102256369A (zh) * | 2011-06-28 | 2011-11-23 | 武汉理工大学 | 基于能量和通信开销的无线传感器网格任务调度方法 |
KR20160112830A (ko) * | 2015-03-20 | 2016-09-28 | 한국전자통신연구원 | 최적화된 태스크 기반 데이터 처리 서비스 생성 방법 및 장치 |
CN106293892A (zh) * | 2015-06-26 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 分布式流计算系统、方法和装置 |
Non-Patent Citations (1)
Title |
---|
殷荣: "基于DAG模型的离线数据处理引擎的设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020207393A1 (zh) * | 2019-04-09 | 2020-10-15 | 华为技术有限公司 | 算子运算调度方法和装置 |
CN111796917A (zh) * | 2019-04-09 | 2020-10-20 | 华为技术有限公司 | 算子运算调度方法和装置 |
US11934866B2 (en) | 2019-04-09 | 2024-03-19 | Huawei Technologies Co., Ltd. | Operator operation scheduling method and apparatus to determine an optimal scheduling policy for an operator operation |
CN110825511A (zh) * | 2019-11-07 | 2020-02-21 | 北京集奥聚合科技有限公司 | 一种基于建模平台模型运行流程调度方法 |
CN113127182A (zh) * | 2019-12-30 | 2021-07-16 | 中国移动通信集团上海有限公司 | 深度学习调度配置系统及方法 |
CN113626116A (zh) * | 2021-07-20 | 2021-11-09 | 中国电子科技集团公司电子科学研究院 | 智能学习系统及数据分析方法 |
CN113626116B (zh) * | 2021-07-20 | 2023-12-15 | 中国电子科技集团公司电子科学研究院 | 智能学习系统及数据分析方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11630646B2 (en) | Software defined network controller | |
CN107273193A (zh) | 一种基于dag的面向多计算框架的数据处理方法及系统 | |
CN107463595A (zh) | 一种基于Spark的数据处理方法及系统 | |
CN106708917B (zh) | 一种数据处理方法、装置以及olap系统 | |
CN108134690B (zh) | 网络业务部署流程控制方法、装置及系统 | |
US10038753B2 (en) | Network-independent programming model for online processing in distributed systems | |
CN103645909A (zh) | 定时任务的处理方法及装置 | |
CN112965901B (zh) | Api的测试方法、服务器、系统以及电子设备 | |
CN107526645A (zh) | 一种通信优化方法及系统 | |
US20130227121A1 (en) | Monitoring a path of a transaction across a composite application | |
CN108241539B (zh) | 基于分布式系统的交互式大数据查询方法、装置、存储介质和终端设备 | |
CN115840631B (zh) | 基于raft的高可用分布式任务调度方法和设备 | |
CN105445792A (zh) | 一种叠前多次波逆时偏移地震数据处理方法及系统 | |
CN105049505A (zh) | 一种适配多种云存储接口的方法及系统 | |
CN114091685A (zh) | 深度学习框架的张量切分方法、装置、设备和存储介质 | |
US9084131B2 (en) | Data cut-over method and apparatus | |
CN104636397B (zh) | 用于分布式计算的资源分配方法、计算加速方法以及装置 | |
CN111736950A (zh) | 一种虚拟机的加速器资源添加方法及相关装置 | |
CN113179329B (zh) | 服务发布方法及装置、服务器、存储介质 | |
CN109284173A (zh) | 一种用于虚拟机业务迁移的智能管理设备 | |
CN115984022B (zh) | 分布式支付系统统一对账方法和装置 | |
CN1921412B (zh) | 电路割接的系统及方法 | |
CN103108044A (zh) | 一种基于依赖图约减和QoS保持的Web服务组合方法 | |
CN109389271B (zh) | 应用性能管理方法及系统 | |
CN109814973A (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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20171020 |
|
WD01 | Invention patent application deemed withdrawn after publication |