CN114489679A - 一种hadoop大数据任务DAG依赖智能分析系统及方法 - Google Patents
一种hadoop大数据任务DAG依赖智能分析系统及方法 Download PDFInfo
- Publication number
- CN114489679A CN114489679A CN202210160321.2A CN202210160321A CN114489679A CN 114489679 A CN114489679 A CN 114489679A CN 202210160321 A CN202210160321 A CN 202210160321A CN 114489679 A CN114489679 A CN 114489679A
- Authority
- CN
- China
- Prior art keywords
- task
- chain
- input
- tasks
- output
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
- G06F8/433—Dependency analysis; Data or control flow analysis
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种hadoop大数据任务DAG依赖智能分析系统及方法,系统根据任务创建过程中用户填写的任务信息,后续无需额外的配置,即可很简单、很灵活地解析任务间的关联关系,获得任务的DAG图。通过任务的智能依赖解析,可以方便灵活地控制任务的上线、下线,无需人工干预,智能地得到任务的上下游关系,并执行相应的动作。
Description
技术领域
本发明涉及大数据技术领域,具体涉及一种hadoop大数据任务DAG依赖智能分析系统及方法。
背景技术
随着大数据系统的持续使用,任务数量也在持续增加,任务间的依赖关系日益复杂,如何智能地解析任务间的依赖关系,成为亟待解决的问题。面对日益增加的任务数量,通过手动拖拽或者编写配置文件的简单直接方式会造成日后任务的不准确及任务管理的不便,因此需要一种简单的、灵活的方式解析任务间的依赖关系。
发明内容
针对现有技术的不足,本发明旨在提供一种hadoop大数据任务DAG依赖智能分析系统及方法。
为了实现上述目的,本发明采用如下技术方案:
一种hadoop大数据任务DAG依赖智能分析系统,包括任务创建模块、任务信息解析模块、任务依赖关系分析模块;
所述任务创建模块用于供用户编写并创建任务,以及输入任务的类型、输入源、输入表、输出源、输出表;
所述任务信息解析模块用于对用户输入的任务信息进行解析,获得任务的输入表和输出表信息;
任务依赖关系分析模块用于分析各个任务的输入表和输出表,如果某一个任务A的输出表是另一个任务B的输入表,则任务A是任务B的上游任务,由此获得任务链;用于解析任务链,获得任务之间的依赖关系;用于通过拓扑排序,判断任务链是否存在回环,如果任务链为DAG,提交任务至调度系统,如果任务链存在回环,提示用户重新修改任务信息。
进一步地,所述任务依赖关系分析模块进行拓扑排序的过程为:
a)在任务链中选择一个没有上游任务的节点输出;
b)在任务链中删除该任务和所有以它为尾的线;
c)重复步骤a)和b),直到全部任务节点已输出或者任务链中不存在无上游任务的节点为止;
d)获得最终的拓扑序列。
本发明还提供一种利用上述系统的方法,具体过程为:
用户通过任务创建模块编写并创建任务,并输入任务的类型、输入源、输入表、输出源、输出表;
用户创建任务完成后,任务信息解析模块对用户输入的任务信息进行解析,获得任务的输入表和输出表信息;
任务依赖关系分析模块分析各个任务的输入表和输出表,如果某一个任务A的输出表是另一个任务B的输入表,则任务A是任务B的上游任务,由此获得任务链;然后解析任务链,获得任务之间的依赖关系;通过拓扑排序,判断任务链是否存在回环,如果任务链为DAG,提交任务至调度系统,如果任务链存在回环,提示用户重新修改任务信息。
本发明的有益效果在于:本发明仅需使用任务新建过程中的基本信息,通过排序的方式,即可智能地解析任务间依赖关系,不需要额外的配置,从而可以解决手动拖拽或编写配置文件繁琐及难于维护的问题。
附图说明
图1为本发明实施例2的方法流程图;
图2为本发明实施例2的拓扑排序示例图。
具体实施方式
以下将结合附图对本发明作进一步的描述,需要说明的是,本实施例以本技术方案为前提,给出了详细的实施方式和具体的操作过程,但本发明的保护范围并不限于本实施例。
实施例1
本实施例提供一种hadoop大数据任务DAG依赖智能分析系统,没有对任务做过多的约束,只是对其做了一些额外的约定,这里涉及的主要有两个方面:
1、在新建任务的程序上,设置提供数据源输入和输出表信息的过程。
2、添加调度时提供任务依赖信息。
本实施例的一个重要目标是让系统无需额外的配置,即可完成任务依赖关系的解析,对于用户来说,他面对的不再是繁琐的配置,而是任务的基本信息。本实施例中,首先需要知道任务的类型、输入源、输入表、输出源、输出表等,而且需要将这些信息进行持久化操作。另外一个核心就是任务调度时的依赖关系,在添加调度时,可以很灵活地设置依赖关系。
具体地,本实施例的系统包括任务创建模块、任务信息解析模块、任务依赖关系分析模块;
所述任务创建模块用于供用户编写并创建任务,以及输入任务的类型、输入源、输入表、输出源、输出表;
所述任务信息解析模块用于对用户输入的任务信息进行解析,获得任务的输入表和输出表信息。
任务依赖关系分析模块用于分析各个任务的输入表和输出表,如果某一个任务A的输出表是另一个任务B的输入表,则任务A是任务B的上游任务,由此获得任务链;用于解析任务链,获得任务之间的依赖关系;用于通过拓扑排序,判断任务链是否存在回环,如果任务链为DAG(有向无环图),提交任务至调度系统,如果任务链存在回环,提示用户重新修改任务信息。
以下为与任务有关的各种表格示例。
t_hive_program(程序表)
id | 程序编号 |
name | 程序名称 |
content | 程序代码 |
t_job_base(基础任务表)
id | job_base编号 |
job_id | job编号 |
job_type | job类型 |
t_job_hive(hive任务表)
id | job编号 |
program_id | 程序编号 |
dependency_table | 输入表 |
out_table | 输出表 |
t_job_dependency(任务依赖表)
id | 任务依赖编号 |
job_base_id | job_base编号 |
dependency_job_id | 依赖任务编号 |
在本实施例中,所述拓扑排序的过程为:
a)在任务链中选择一个没有上游任务的节点输出。
b)在任务链中删除该任务和所有以它为尾的线。
c)重复步骤a)和b),直到全部任务节点已输出或者任务链中不存在无上游任务的节点为止。
d)获得最终的拓扑序列。
图2所示为一个任务链的示例,经过拓扑排序得到的拓扑序列为C1、C2、C3、C4、C5、C7、C9、C10、C11、C6、C12、C8。
本实施例系统根据任务创建过程中用户填写的任务信息,后续无需额外的配置,即可很简单、很灵活地解析任务间的关联关系,获得任务的DAG图。通过任务的智能依赖解析,可以方便灵活地控制任务的上线、下线,无需人工干预,智能地得到任务的上下游关系,并执行相应的动作。另外,系统会将任务的相关信息保存在zookeeper中,调度会根据任务的依赖关系,依次运行任务。
实施例2
本实施例提供一种利用实施例1所述系统的方法,如图1所示,具体过程为:
用户通过任务创建模块编写并创建任务,并输入任务的类型、输入源、输入表、输出源、输出表;
用户创建任务完成后。任务信息解析模块对用户输入的任务信息进行解析,获得任务的输入表和输出表信息。
任务依赖关系分析模块分析各个任务的输入表和输出表,如果某一个任务A的输出表是另一个任务B的输入表,则任务A是任务B的上游任务,由此获得任务链;然后解析任务链,获得任务之间的依赖关系;通过拓扑排序,判断任务链是否存在回环,如果任务链为DAG,提交任务至调度系统,如果任务链存在回环,提示用户重新修改任务信息。
对于本领域的技术人员来说,可以根据以上的技术方案和构思,给出各种相应的改变和变形,而所有的这些改变和变形,都应该包括在本发明权利要求的保护范围之内。
Claims (3)
1.一种hadoop大数据任务DAG依赖智能分析系统,其特征在于,包括任务创建模块、任务信息解析模块、任务依赖关系分析模块;
所述任务创建模块用于供用户编写并创建任务,以及输入任务的类型、输入源、输入表、输出源、输出表;
所述任务信息解析模块用于对用户输入的任务信息进行解析,获得任务的输入表和输出表信息;
任务依赖关系分析模块用于分析各个任务的输入表和输出表,如果某一个任务A的输出表是另一个任务B的输入表,则任务A是任务B的上游任务,由此获得任务链;用于解析任务链,获得任务之间的依赖关系;用于通过拓扑排序,判断任务链是否存在回环,如果任务链为DAG,提交任务至调度系统,如果任务链存在回环,提示用户重新修改任务信息。
2.根据权利要求1所述的系统,其特征在于,所述任务依赖关系分析模块进行拓扑排序的过程为:
a)在任务链中选择一个没有上游任务的节点输出;
b)在任务链中删除该任务和所有以它为尾的线;
c)重复步骤a)和b),直到全部任务节点已输出或者任务链中不存在无上游任务的节点为止;
d)获得最终的拓扑序列。
3.一种利用权利要求1-2任一所述系统的方法,其特征在于,具体过程为:
用户通过任务创建模块编写并创建任务,并输入任务的类型、输入源、输入表、输出源、输出表;
用户创建任务完成后,任务信息解析模块对用户输入的任务信息进行解析,获得任务的输入表和输出表信息;
任务依赖关系分析模块分析各个任务的输入表和输出表,如果某一个任务A的输出表是另一个任务B的输入表,则任务A是任务B的上游任务,由此获得任务链;然后解析任务链,获得任务之间的依赖关系;通过拓扑排序,判断任务链是否存在回环,如果任务链为DAG,提交任务至调度系统,如果任务链存在回环,提示用户重新修改任务信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210160321.2A CN114489679A (zh) | 2022-02-22 | 2022-02-22 | 一种hadoop大数据任务DAG依赖智能分析系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210160321.2A CN114489679A (zh) | 2022-02-22 | 2022-02-22 | 一种hadoop大数据任务DAG依赖智能分析系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114489679A true CN114489679A (zh) | 2022-05-13 |
Family
ID=81481624
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210160321.2A Pending CN114489679A (zh) | 2022-02-22 | 2022-02-22 | 一种hadoop大数据任务DAG依赖智能分析系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114489679A (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103207903A (zh) * | 2013-03-26 | 2013-07-17 | 南京南瑞继保电气有限公司 | 一种可视化图形程序拓扑排序方法 |
CN104965760A (zh) * | 2015-06-29 | 2015-10-07 | 广州酷狗计算机科技有限公司 | 一种管理软件功能模块生命周期的方法和装置 |
CN106484520A (zh) * | 2016-10-17 | 2017-03-08 | 北京集奥聚合科技有限公司 | 一种基于数据血缘关系的智能调度方法及系统 |
US20180189113A1 (en) * | 2016-02-05 | 2018-07-05 | Sas Institute Inc. | Federated device support for generation of directed acyclic graphs |
CN108388474A (zh) * | 2018-02-06 | 2018-08-10 | 北京易沃特科技有限公司 | 基于dag的智能分布式计算管理系统及方法 |
CN108984284A (zh) * | 2018-06-26 | 2018-12-11 | 杭州比智科技有限公司 | 基于离线计算平台的dag任务调度方法及装置 |
CN112162737A (zh) * | 2020-10-13 | 2021-01-01 | 深圳晶泰科技有限公司 | 一种有向无环图式自动任务流的通用描述语言数据系统 |
CN112801546A (zh) * | 2021-03-18 | 2021-05-14 | 中国工商银行股份有限公司 | 一种任务调度方法、装置及存储介质 |
CN113986503A (zh) * | 2021-10-29 | 2022-01-28 | 中国平安人寿保险股份有限公司 | 任务调度方法、任务调度装置、任务调度设备及存储介质 |
-
2022
- 2022-02-22 CN CN202210160321.2A patent/CN114489679A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103207903A (zh) * | 2013-03-26 | 2013-07-17 | 南京南瑞继保电气有限公司 | 一种可视化图形程序拓扑排序方法 |
CN104965760A (zh) * | 2015-06-29 | 2015-10-07 | 广州酷狗计算机科技有限公司 | 一种管理软件功能模块生命周期的方法和装置 |
US20180189113A1 (en) * | 2016-02-05 | 2018-07-05 | Sas Institute Inc. | Federated device support for generation of directed acyclic graphs |
CN106484520A (zh) * | 2016-10-17 | 2017-03-08 | 北京集奥聚合科技有限公司 | 一种基于数据血缘关系的智能调度方法及系统 |
CN108388474A (zh) * | 2018-02-06 | 2018-08-10 | 北京易沃特科技有限公司 | 基于dag的智能分布式计算管理系统及方法 |
CN108984284A (zh) * | 2018-06-26 | 2018-12-11 | 杭州比智科技有限公司 | 基于离线计算平台的dag任务调度方法及装置 |
CN112162737A (zh) * | 2020-10-13 | 2021-01-01 | 深圳晶泰科技有限公司 | 一种有向无环图式自动任务流的通用描述语言数据系统 |
CN112801546A (zh) * | 2021-03-18 | 2021-05-14 | 中国工商银行股份有限公司 | 一种任务调度方法、装置及存储介质 |
CN113986503A (zh) * | 2021-10-29 | 2022-01-28 | 中国平安人寿保险股份有限公司 | 任务调度方法、任务调度装置、任务调度设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
李娟: "如何实现基于DAG全拓扑排序", 《电脑编程技巧与维护》 * |
陈道蓄: "调度问题中的算法", 《中国信息技术教育》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108958721B (zh) | 一种智能化持续集成与持续部署流水线方法及系统 | |
Hoogeveen | Single-machine scheduling to minimize a function of two or three maximum cost criteria | |
Sacks et al. | Key performance indicators to analyze and improve management of information flow in the BIM design process | |
Wiśniewski | Decomposition of business process models into reusable sub-diagrams | |
CN110764747A (zh) | 基于Airflow的数据计算调度方法 | |
EP1672578A1 (en) | Method and system for analyzing the risk of a project | |
Liu et al. | Construction rescheduling based on a manufacturing rescheduling framework | |
CN116069300A (zh) | 工作流控制代码生成方法、装置、电子设备及存储介质 | |
Yavuz | Iterated beam search for the combined car sequencing and level scheduling problem | |
CN111339597B (zh) | 一种适用于信息工程建设项目的双代号网络快速自动布图方法 | |
CN114489679A (zh) | 一种hadoop大数据任务DAG依赖智能分析系统及方法 | |
CN109165238B (zh) | 一种用于生成周期指标数据的数据处理方法及装置 | |
CN113190582A (zh) | 一种数据实时交互式挖掘流建模分析系统 | |
Veitaitė et al. | Knowledge-based UML activity model transformation algorithm | |
CN112506957A (zh) | 工作流依赖关系的确定方法及装置 | |
Sotskov | Software for production scheduling based on the mixed (multi) graph approach | |
CN112685010B (zh) | 一种ai应用开发方法及系统 | |
Shailesh et al. | A study on performance evaluation of computer systems using Petri Nets | |
CN113361931B (zh) | 煤化工企业智能生产系统的规划系统和方法 | |
CN117171203B (zh) | 一种基于零代码推理引擎的sql自动生成方法及系统 | |
Koltai et al. | Examination of the sensitivity of an operation schedule with perturbation analysis | |
US11507728B2 (en) | Click to document | |
WO2024045096A1 (zh) | 基于本体模型的处理方法、装置、设备、介质和产品 | |
Bakir et al. | Process Mining Algorithms Performance According to New Bayes Conformance Function | |
Zaborowski | Information-decision model for self-controlling enterprise processes |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20220513 |