CN115525406A - 一种分布式异步任务调度系统 - Google Patents
一种分布式异步任务调度系统 Download PDFInfo
- Publication number
- CN115525406A CN115525406A CN202210741769.3A CN202210741769A CN115525406A CN 115525406 A CN115525406 A CN 115525406A CN 202210741769 A CN202210741769 A CN 202210741769A CN 115525406 A CN115525406 A CN 115525406A
- Authority
- CN
- China
- Prior art keywords
- task
- workflow
- tasks
- node
- data
- 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
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3017—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is implementing multitasking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3089—Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
- G06F11/3093—Configuration details thereof, e.g. installation, enabling, spatial arrangement of the probes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/32—Monitoring with visual or acoustical indication of the functioning of the machine
- G06F11/324—Display of status information
- G06F11/327—Alarm or error message display
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24532—Query optimisation of parallel queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/283—Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/0486—Drag-and-drop
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/80—Database-specific techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/508—Monitor
Abstract
本发明公开了一种分布式异步任务调度系统,其特征在于,包括:接口调用模块,用于接收和创建任务请求,通过赋予用户有期限的令牌,在期限范围内,用户使用令牌通过接口API的方式去调度与执行任务,或发送创建工作流的请求;dolphinscheduler调度平台,用于对任务或工作流进行调度与监控;Web可视化操作平台,用于为用户提供任务或工作流的可视化管理,以及提供关于任务或工作流的数据支撑;数据存储模块DB,用于存储api发送的相关请求,工作流的日志信息与Web可视化操作平台的功能模块配置信息;与现有技术相比,本发明结构简单、易于实现、与大数据相关的组件有更强的兼容性。
Description
技术领域
本发明涉及大数据处理技术领域,尤其涉及一种分布式异步任务调度系统。
背景技术
近年来,随着大数据组件的不断多元化与组件的迭代频率不断加快,繁杂的启动命令参数与复杂的监控流程与监控日志内容查询、如何实现新版本组件集群与旧版本集群之间无感过度等一系列问题。无疑增大了技术人员的学习成本与操作成本,如何在较低成本和低代码的情况下完成对大数据组件的统一规范调度、便捷监控与版本兼容成为一大问题。因此,急需一种新型的分布式异步任务调度系统,以克服上述问题。
发明内容
为了解决现有的技术问题,本发明目的是通过构建一种基于 dolphinscheduler的分布式异步任务调度系统,实现通过可视化拖拉拽的方式组成工作流、通过友好的界面可视化配置组件的参数、对每个工作节点进行精细化日志监控并对整个工作流控制。大大较低了技术人员的时间成本与学习成本,并规范了整个工作流程。
为了实现上述技术目的,本发明提供了一种分布式异步任务调度系统,其特征在于,包括:
接口调用模块API Server,用于接收和创建任务请求,通过赋予用户有期限的令牌,在期限范围内,用户使用令牌通过接口API的方式去调度与执行任务,或发送创建工作流的请求;
dolphinscheduler调度平台,与接口调用模块API Server进行数据交互,用于对任务或工作流进行调度与监控;
Web可视化操作平台WebServer,与dolphinscheduler调度平台进行数据交互,用于为用户提供任务或工作流的可视化管理,以及提供关于任务或工作流的数据支撑;
数据存储模块DB,分别与接口调用模块API Server、 dolphinscheduler调度平台、Web可视化操作平台WebServer进行数据交互,用于存储api发送的相关请求,工作流的日志信息与 WebServer的功能模块配置信息。
优选地,接口调用模块API Server包括:
任务接收单元,用于获取需要调度或执行的任务请求;
指令单元,用于生成令牌;
时钟单元,用于赋予令牌有效期限;
任务创建单元,用于创建工作流并形成任务请求。
优选地,dolphinscheduler调度平台包括:
控制节点MasterServer,用于读取接口调用模块API Server生成的请求参数,渲染出对应的工作流并将工作流的任务节点通过负载均衡的方式分发给Worker;
工作节点WorkerServer,用于为Worker,提供控制节点MasterServer生成的工作流和/或任务节点;
告警节点AlterServer,用于将工作流和/或任务节点的进程,发送到不同的告警组或系统,其中,进程表示任务开始、任务结束、任务失败。
优选地,控制节点MasterServer还用于在控制当前工作节点时,同时监听其他工作节点WorkerServer与Worker的当前状态。
优选地,Web可视化操作平台WebServer包括:
项目管理单元,将同类性质或属性的工作流归于一个项目下统一管理;
环境管理单元,用于将不同版本的组件集群通过配置环境变量并持久化到数据库,实现新旧版本组件集群兼容流程化与老版本集群与新版本集群间的无感衔接;
用户管理单元,用于为用户提供不同的用户身份信息,其中,用户身份信息表示用于执行或创建工作流的用户身份;
权限管理单元,用于通过设置不同用户权限,限制用户操作项目调度资;
租户管理单元,用于为临时用户提供具有使用期限的临时身份信息;
资源中心单元,用于上传资源文件和udf函数,通过将HDFS大数据文件系统组件用于文件存储系统,使得任一任务节点调取到文件存储系统中的资源,增强任务节点间的协调性。
优选地,数据存储模块DB支持MySQL、POSTGRESQL、HIVE/IMPALA、 SPARK、CLICKHOUSE、ORACLE、SQLSERVER中的一种或多种组合的数据源;
在Web可视化操作平台WebServer的可视化界面,通过拖拉拽方式建立数据操作节点,将工作流的数据流程持久化关联到关系型与非关系型数据库中。
优选地,Web可视化操作平台WebServer具有可视化交互功能,包括中止、恢复、暂停、触发任务,监控正在运行的任务,断点续跑任务,配置连接,获取详细日志信息。
优选地,分布式异步任务调度系统用于构建分布式异步任务,其中,分布式异步任务的构建方法包括以下步骤:
S11:接口调用模块API Server接收用户发送的创建任务请求或执行任务请求,解析该任务请求的请求参数为一天Command命令存储到数据存储模块DB中;
S12:MasterServer将有线程去轮询数据库中数据表获取一条可执行的Command命令并解析命令,若解析到的命令是执行工作流命令则跳转至S13;若解析命令后确认为创建工作流,跳转至S14;
S13:Master启动相应的工作流模板并根据工作流的流程属性将工作流中进行任务切分并根据任务节点中的信息将任务分发给指定的Worker工作节点或负载均衡分发给对应的工作组,完成这些操作后跳转至S15,其中,任务参数包括调度周期、任务命令参数、任务队列、失败重试次数和任务权重;
S14:Master根据解析的创建命令与命令中的参数构建工作流并完善工作流中工作节点信息,将工作流中任务进行切分并根据任务节点中的信息将任务分发给指定的Worker工作节点或负载均衡分发给对应的工作组。然后将工作流相关信息持久化到数据存储模块DB中并跳转至S15;
S15:Worker接收到Master分发的任务并解析相关参数,并在本地生成对应的执行脚本。完成这部操作后跳转到S16;
S16:Worker在资源中心中获取任务需要的资源然后结合脚本开始进行任务的执行,并将任务的执行情况持久化到数据存储模块DB 中。
优选地,分布式异步任务调度系统还用于通过结合大数据流式计算引擎Flink,进行数据通道构建,其中,用于构建数据通道的调度方法,其包括如下步骤:
S21:将各类Flink数据通道代码打包成Jar包上传到WebServer 的资源中心单元后,跳转到S22;
S22:通过WebServer界面配置工作流,在工作流层面定义数据源变量与文件持续写入时间后,跳转到S23;
S23:在工作流中定义起点为switch节点,并接收工作流的数据源变量,根据Flink数通道的不同特性创建不同的Flink节点与 switch节点相连,并接收工作流的文件持续写入时间,后跳转到S24;
S24:Flink任务节点从资源中心下载相关的jar包并写入任务需要的环境变量信息后,开始执行Flink任务,当任务开始执行时,将任务信息发送给相关操作人员,若任务执行成功跳转到S25,若任务执行失败跳转到S26;
S25:更新任务节点实例的状态为成功,并记录执行日志,并将任务周期内的信息持久化至数据库;
S26:更新任务节点实例的状态为失败,并记录执行日志,并将任务周期内的信息持久化至数据库。
优选地,分布式异步任务调度系统用于通过Web可视化操作平台 WebServer的可视化界面,为用户提供控制DAG权限、DAG任务调度信息、以及任务执行日志。
本发明公开了以下技术效果:
与现有技术相比,本发明结构简单、易于实现、与大数据相关的组件有更强的兼容性。能够提升系统的可用性、伸缩性,容错性,保证系统的负载均衡。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明所述的系统架构示意图;
图2为本发明所述的实施例1的工作流程图;
图3为本发明所述的实施例2的工作流程图。
具体实施方式
下为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
如图1-3所示,本发明提供了一种分布式异步任务调度系统,其特征在于,包括:
接口调用模块API Server,用于接收和创建任务请求,通过赋予用户有期限的令牌,在期限范围内,用户使用令牌通过接口API的方式去调度与执行任务,或发送创建工作流的请求;
dolphinscheduler调度平台,与接口调用模块API Server进行数据交互,用于对任务或工作流进行调度与监控;
Web可视化操作平台WebServer,与dolphinscheduler调度平台进行数据交互,用于为用户提供任务或工作流的可视化管理,以及提供关于任务或工作流的数据支撑;
数据存储模块DB,分别与接口调用模块API Server、 dolphinscheduler调度平台、Web可视化操作平台WebServer进行数据交互,用于存储api发送的相关请求,工作流的日志信息与 WebServer的功能模块配置信息。
进一步优选地,接口调用模块API Server包括:
任务接收单元,用于获取需要调度或执行的任务请求;
指令单元,用于生成令牌;
时钟单元,用于赋予令牌有效期限;
任务创建单元,用于创建工作流并形成任务请求。
进一步优选地,dolphinscheduler调度平台包括:
控制节点MasterServer,用于读取接口调用模块API Server生成的请求参数,渲染出对应的工作流并将工作流的任务节点通过负载均衡的方式分发给Worker;
工作节点WorkerServer,用于为Worker,提供控制节点 MasterServer生成的工作流和/或任务节点;
告警节点AlterServer,用于将工作流和/或任务节点的进程,发送到不同的告警组或系统,其中,进程表示任务开始、任务结束、任务失败。
进一步优选地,控制节点MasterServer还用于在控制当前工作节点时,同时监听其他工作节点WorkerServer与Worker的当前状态。
进一步优选地,Web可视化操作平台WebServer包括:
项目管理单元,将同类性质或属性的工作流归于一个项目下统一管理;
环境管理单元,用于将不同版本的组件集群通过配置环境变量并持久化到数据库,实现新旧版本组件集群兼容流程化与老版本集群与新版本集群间的无感衔接;
用户管理单元,用于为用户提供不同的用户身份信息,其中,用户身份信息表示用于执行或创建工作流的用户身份;
权限管理单元,用于通过设置不同用户权限,限制用户操作项目调度资;
租户管理单元,用于为临时用户提供具有使用期限的临时身份信息;
资源中心单元,用于上传资源文件和udf函数,通过将HDFS大数据文件系统组件用于文件存储系统,使得任一任务节点调取到文件存储系统中的资源,增强任务节点间的协调性。
进一步优选地,数据存储模块DB支持MySQL、POSTGRESQL、 HIVE/IMPALA、SPARK、CLICKHOUSE、ORACLE、SQLSERVER中的一种或多种组合的数据源;
在Web可视化操作平台WebServer的可视化界面,通过拖拉拽方式建立数据操作节点,将工作流的数据流程持久化关联到关系型与非关系型数据库中。
进一步优选地,Web可视化操作平台WebServer具有可视化交互功能,包括中止、恢复、暂停、触发任务,监控正在运行的任务,断点续跑任务,配置连接,获取详细日志信息。
进一步优选地,分布式异步任务调度系统用于构建分布式异步任务,其中,分布式异步任务的构建方法包括以下步骤:
S11:接口调用模块API Server接收用户发送的创建任务请求或执行任务请求,解析该任务请求的请求参数为一天Command命令存储到数据存储模块DB中;
S12:MasterServer将有线程去轮询数据库中数据表获取一条可执行的Command命令并解析命令,若解析到的命令是执行工作流命令则跳转至S13;若解析命令后确认为创建工作流,跳转至S14;
S13:Master启动相应的工作流模板并根据工作流的流程属性将工作流中进行任务切分并根据任务节点中的信息将任务分发给指定的Worker工作节点或负载均衡分发给对应的工作组,完成这些操作后跳转至S15,其中,任务参数包括调度周期、任务命令参数、任务队列、失败重试次数和任务权重;
S14:Master根据解析的创建命令与命令中的参数构建工作流并完善工作流中工作节点信息,将工作流中任务进行切分并根据任务节点中的信息将任务分发给指定的Worker工作节点或负载均衡分发给对应的工作组。然后将工作流相关信息持久化到数据存储模块DB中并跳转至S15;
S15:Worker接收到Master分发的任务并解析相关参数,并在本地生成对应的执行脚本。完成这部操作后跳转到S16;
S16:Worker在资源中心中获取任务需要的资源然后结合脚本开始进行任务的执行,并将任务的执行情况持久化到数据存储模块DB 中。
进一步优选地,分布式异步任务调度系统还用于通过结合大数据流式计算引擎Flink,进行数据通道构建,其中,用于构建数据通道的调度方法,其包括如下步骤:
S21:将各类Flink数据通道代码打包成Jar包上传到WebServer 的资源中心单元后,跳转到S22;
S22:通过WebServer界面配置工作流,在工作流层面定义数据源变量与文件持续写入时间后,跳转到S23;
S23:在工作流中定义起点为switch节点,并接收工作流的数据源变量,根据Flink数通道的不同特性创建不同的Flink节点与 switch节点相连,并接收工作流的文件持续写入时间,后跳转到S24;
S24:Flink任务节点从资源中心下载相关的jar包并写入任务需要的环境变量信息后,开始执行Flink任务,当任务开始执行时,将任务信息发送给相关操作人员,若任务执行成功跳转到S25,若任务执行失败跳转到S26;
S25:更新任务节点实例的状态为成功,并记录执行日志,并将任务周期内的信息持久化至数据库;
S26:更新任务节点实例的状态为失败,并记录执行日志,并将任务周期内的信息持久化至数据库。
进一步优选地,分布式异步任务调度系统用于通过Web可视化操作平台WebServer的可视化界面,为用户提供控制DAG权限、DAG任务调度信息、以及任务执行日志。
如图1所示,本发明提供了一种基于dolphinscheduler的分布式异步任务调度系统,其包括:接口调用模块APIServer, dolphinscheduler调度平台,Web可视化操作平台WebServer和数据存储模块DB。
其中,APIServer需要获得安全令牌才能有效用于接收创建或执行工作流请求、并从创建工作流请求中解析出请求参数并将这条指令封装为Command命令持久化到数据库中;dolphinscheduler调度平台包括控制节点MasterServer,工作节点WorkerServer和告警节点 AlterServer。MasterServer采用分布式无中心设计理念,用于对数据库中的Command命令进行轮询,轮询到Command命令后的Master 根据Command命令生成工作流并将工作流进行切分为一个个工作然后分发给WorkerServer进行执行。MasterServer还对整个工作流进行启动、定时启动、停止、暂停等控制。值得一提的是传统的调度系统并不支持任务的暂停操作,因为MasterServer会将任务持久化到数据库并同时监听其它MasterServer和WorkerServer的健康状态。 WorkerServer也采用分布式无中心设计理念。主要负责任务的执行和提供日志服务。
AlterServer。主要用于任务的告警服务,通过对不同任务工作流或任务配置不同的告警组,可以实现非常灵活并且多样的任务告警,实现无平台限制,无空间限制的多范围告警预知。
需要说明的是:注册中心Zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。依赖于ZooKeeper的Watcher机制使 dolphinscheduler的Mater节点与Worker节点具有较高的容错性,其中Master监控其他Master和Worker的目录,如果监听到remove 事件,则会根据具体的业务逻辑进行流程实例容错或者任务实例容错。
实施例1:基于dolphinscheduler的构建分布式异步任务,如图2所示,其工作流程如下:
S11:接口调用模块APIServer接收用户发送的工作流任务请求,解析该创建任务请求的请求参数,请求参数包括:指定工作流的所属项目projectName、工作流公共参数(若影响工作流中任务执行则必填),指定工作流环境,是否告警,失败重试次数为3,任务权重为 3(数字越大权重越高),其中,任务命令参数是一组JSON数据对象,可以通过序列化与反序列化等数据操作获取任务命令执行数据集将该请求封装为一条Command命令存入数据存储模块的Command表中;
S12:Master节点会启动线程去轮询数据存储模块中Command表,并读取一条可用的Command命令,若命令为执行工作流命令,则跳转至S3;若为创建工作流命令,跳转至S14;
S13:Master启动相应的工作流模板并根据工作流的流程属性将工作流中进行任务切分并根据任务节点中的信息将任务分发给指定的Worker工作节点或负载均衡分发给对应的工作组,完成这步操作后跳转至S15;
S14:Master根据解析的创建命令与命令中的参数构建工作流并完善工作流中工作节点信息,将工作流中任务进行切分并根据任务节点中的信息将任务分发给指定的Worker工作节点或负载均衡分发给对应的工作组。然后将工作流相关信息持久化到数据存储模块DB中并跳转至S5。
S15:Worker接收到Master分发的任务并解析相关参数,并在本地生成对应的执行脚本。完成这部操作后跳转到S6。执行脚本根据不同的任务类型在可视化界面WebServer填写的相关参数已经配置好的相关的启动参数,这一步很大程度减少的技术人员的学习成本与操作成本,更加符合现如今组件多样迭代快的大数据环境。
S16:Worker在资源中心中获取任务需要的资源然后结合脚本开始进行任务的执行,并将任务的执行情况持久化到数据存储模块DB 中。
在上述过程中,若要直接创建一个定时任务,则请求APIServer 接口,需要传递的参数包含:调度周期为0*/1***,任务命令参数,失败试次数为1;
实施例2:如图3所示,其工作过程如下:
S21:将开发完成的各类Flink数据通道代码打包成Jar包上传到WebServer的资源中心中;完成这些操作后跳转到S22;
S22:我们以数据入口为Kafka,数据出口为Hadopp生态的HDFS 文件系统为例,通过WebServer界面配置工作流,在工作流层面定义好两个变量数据源Kafka的Topic名KafkaTopic与文件持续写入时间FileDuration,完成这步操作后跳转到S23;
S23:在工作流中定义起点为switch节点并接收工作流的 KafkaTopic变量,根据Flink数通道的不同特性创建不同的Flink 节点与switch节点相连并接收工作流的文件持续写入时间 FileDuration变量。这样就可实现根据协议好的Topic命名规则在 Switch节点就可实现根据KafkaTopic变量开启指定的数据通道,完成这步操作后跳转到S24;
S24:Flink任务节点从资源中心下载相关的jar包并写入任务需要的环境变量信息,然后开始执行Flink任务,注意一提的是Flink 本地任务、发送任务到Flink集群或发送到FlinkOnYarn都是可行的。任务开始执行就会触发AlterServer告警,将任务信息发送给相关操作人员,若任务执行成功跳转到S25,若任务执行失败跳转到S26;
S25:更新任务节点实例的状态为成功,并记录执行日志,并将任务周期内的信息持久化至数据库;
S26:更新任务节点实例的状态为失败,并记录执行日志,并将任务周期内的信息持久化至数据库;
在上述过程中:用户可通过WebServer可视化界面来控制DAG和获取具体的DAG任务调度信息以及以来视图等,并且参看执行日志。
以上,仅为本发明的具体实施例,但本发明的保护范围并不局限于此,任何熟悉本领域技术的技术人员在本发明公开的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。本发明的保护范围以权利要求书的保护范围为准。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/ 或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
应当注意的是,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本发明可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
Claims (10)
1.一种分布式异步任务调度系统,其特征在于,包括:
接口调用模块API Server,用于接收和创建任务请求,通过赋予用户有期限的令牌,在期限范围内,所述用户使用所述令牌通过接口API的方式去调度与执行任务,或发送创建工作流的请求;
dolphinscheduler调度平台,与所述接口调用模块API Server进行数据交互,用于对所述任务或所述工作流进行调度与监控;
Web可视化操作平台WebServer,与所述dolphinscheduler调度平台进行数据交互,用于为所述用户提供所述任务或所述工作流的可视化管理,以及提供关于所述任务或所述工作流的数据支撑;
数据存储模块DB,分别与所述接口调用模块API Server、所述dolphinscheduler调度平台、所述Web可视化操作平台WebServer进行数据交互,用于存储api发送的相关请求,工作流的日志信息与WebServer的功能模块配置信息。
2.根据权利要求1所述一种分布式异步任务调度系统,其特征在于:
所述接口调用模块API Server包括:
任务接收单元,用于获取需要调度或执行的所述任务请求;
指令单元,用于生成所述令牌;
时钟单元,用于赋予所述令牌有效期限;
任务创建单元,用于创建所述工作流并形成所述任务请求。
3.根据权利要求2所述一种分布式异步任务调度系统,其特征在于:
所述dolphinscheduler调度平台包括:
控制节点MasterServer,用于读取所述接口调用模块API Server生成的请求参数,渲染出对应的所述工作流并将所述工作流的任务节点通过负载均衡的方式分发给Worker;
工作节点WorkerServer,用于为所述Worker,提供所述控制节点MasterServer生成的所述工作流和/或所述任务节点;
告警节点AlterServer,用于将所述工作流和/或所述任务节点的进程,发送到不同的告警组或系统,其中,所述进程表示任务开始、任务结束、任务失败。
4.根据权利要求3所述一种分布式异步任务调度系统,其特征在于:
所述控制节点MasterServer还用于在控制当前工作节点时,同时监听其他工作节点WorkerServer与Worker的当前状态。
5.根据权利要求4所述一种分布式异步任务调度系统,其特征在于:
所述Web可视化操作平台WebServer包括:
项目管理单元,将同类性质或属性的所述工作流归于一个项目下统一管理;
环境管理单元,用于将不同版本的组件集群通过配置环境变量并持久化到数据库,实现新旧版本组件集群兼容流程化与老版本集群与新版本集群间的无感衔接;
用户管理单元,用于为所述用户提供不同的用户身份信息,其中,所述用户身份信息表示用于执行或创建工作流的用户身份;
权限管理单元,用于通过设置不同用户权限,限制用户操作项目调度资;
租户管理单元,用于为临时用户提供具有使用期限的临时身份信息;
资源中心单元,用于上传资源文件和udf函数,通过将HDFS大数据文件系统组件用于文件存储系统,使得任一所述任务节点调取到文件存储系统中的资源,增强所述任务节点间的协调性。
6.根据权利要求5所述一种分布式异步任务调度系统,其特征在于:
所述数据存储模块DB支持MySQL、POSTGRESQL、HIVE/IMPALA、SPARK、CLICKHOUSE、ORACLE、SQLSERVER中的一种或多种组合的数据源;
在所述Web可视化操作平台WebServer的可视化界面,通过拖拉拽方式建立数据操作节点,将所述工作流的数据流程持久化关联到关系型与非关系型数据库中。
7.根据权利要求6所述一种分布式异步任务调度系统,其特征在于:
所述Web可视化操作平台WebServer具有可视化交互功能,包括中止、恢复、暂停、触发任务,监控正在运行的任务,断点续跑任务,配置连接,获取详细日志信息。
8.根据权利要求7所述一种分布式异步任务调度系统,其特征在于:
所述分布式异步任务调度系统用于构建分布式异步任务,其中,所述分布式异步任务的构建方法包括以下步骤:
S11:接口调用模块API Server接收用户发送的创建任务请求或执行任务请求,解析该任务请求的请求参数为一天Command命令存储到数据存储模块DB中;
S12:MasterServer将有线程去轮询数据库中数据表获取一条可执行的Command命令并解析命令,若解析到的命令是执行工作流命令则跳转至S13;若解析命令后确认为创建工作流,跳转至S14;
S13:Master启动相应的工作流模板并根据工作流的流程属性将工作流中进行任务切分并根据任务节点中的信息将任务分发给指定的Worker工作节点或负载均衡分发给对应的工作组,完成这些操作后跳转至S15,其中,所述任务参数包括调度周期、任务命令参数、任务队列、失败重试次数和任务权重;
S14:Master根据解析的创建命令与命令中的参数构建工作流并完善工作流中工作节点信息,将工作流中任务进行切分并根据任务节点中的信息将任务分发给指定的Worker工作节点或负载均衡分发给对应的工作组。然后将工作流相关信息持久化到数据存储模块DB中并跳转至S15;
S15:Worker接收到Master分发的任务并解析相关参数,并在本地生成对应的执行脚本。完成这部操作后跳转到S16;
S16:Worker在资源中心中获取任务需要的资源然后结合脚本开始进行任务的执行,并将任务的执行情况持久化到所述数据存储模块DB中。
9.根据权利要求7所述一种分布式异步任务调度系统,其特征在于:
所述分布式异步任务调度系统还用于通过结合大数据流式计算引擎Flink,进行数据通道构建,其中,用于构建数据通道的调度方法,其包括如下步骤:
S21:将各类Flink数据通道代码打包成Jar包上传到WebServer的所述资源中心单元后,跳转到S22;
S22:通过WebServer界面配置工作流,在工作流层面定义数据源变量与文件持续写入时间后,跳转到S23;
S23:在工作流中定义起点为switch节点,并接收所述工作流的所述数据源变量,根据Flink数通道的不同特性创建不同的Flink节点与switch节点相连,并接收所述工作流的所述文件持续写入时间,后跳转到S24;
S24:Flink任务节点从所述资源中心下载相关的所述jar包并写入任务需要的环境变量信息后,开始执行Flink任务,当任务开始执行时,将任务信息发送给相关操作人员,若任务执行成功跳转到S25,若任务执行失败跳转到S26;
S25:更新任务节点实例的状态为成功,并记录执行日志,并将任务周期内的信息持久化至数据库;
S26:更新任务节点实例的状态为失败,并记录执行日志,并将任务周期内的信息持久化至数据库。
10.根据权利要求8或9所述的一种分布式异步任务调度系统,其特征在于:
所述分布式异步任务调度系统用于通过Web可视化操作平台WebServer的可视化界面,为所述用户提供控制DAG权限、DAG任务调度信息、以及任务执行日志。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210741769.3A CN115525406A (zh) | 2022-06-28 | 2022-06-28 | 一种分布式异步任务调度系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210741769.3A CN115525406A (zh) | 2022-06-28 | 2022-06-28 | 一种分布式异步任务调度系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115525406A true CN115525406A (zh) | 2022-12-27 |
Family
ID=84695303
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210741769.3A Pending CN115525406A (zh) | 2022-06-28 | 2022-06-28 | 一种分布式异步任务调度系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115525406A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117093384A (zh) * | 2023-08-23 | 2023-11-21 | 北京志凌海纳科技有限公司 | 通用的后端可靠执行方法、系统、设备及可读介质 |
CN117632380A (zh) * | 2024-01-25 | 2024-03-01 | 泰德网聚(北京)科技股份有限公司 | 一种基于用户需求的自动生成脚本的低码工作流系统 |
-
2022
- 2022-06-28 CN CN202210741769.3A patent/CN115525406A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117093384A (zh) * | 2023-08-23 | 2023-11-21 | 北京志凌海纳科技有限公司 | 通用的后端可靠执行方法、系统、设备及可读介质 |
CN117632380A (zh) * | 2024-01-25 | 2024-03-01 | 泰德网聚(北京)科技股份有限公司 | 一种基于用户需求的自动生成脚本的低码工作流系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9588822B1 (en) | Scheduler for data pipeline | |
CN115525406A (zh) | 一种分布式异步任务调度系统 | |
CN107407918B (zh) | 利用app扩展可编程逻辑控制器 | |
CN111506412B (zh) | 基于Airflow的分布式异步任务构建、调度系统及方法 | |
CN107451147B (zh) | 一种kafka集群动态切换的方法和装置 | |
CN109582466A (zh) | 一种定时任务执行方法、分布式服务器集群及电子设备 | |
CN103825964B (zh) | 一种基于云计算PaaS平台的SLS调度装置和方法 | |
CN110287052A (zh) | 一种异常任务的根因任务确定方法及装置 | |
CN110069334A (zh) | 一种基于包管理的分布式数据作业调度的方法和系统 | |
CN108762900A (zh) | 高频任务调度方法、系统、计算机设备和存储介质 | |
CN109656782A (zh) | 可视化调度监控方法、装置及服务器 | |
CN111078396B (zh) | 一种基于多任务实例的分布式数据接入方法和系统 | |
US8538793B2 (en) | System and method for managing real-time batch workflows | |
CN110611707B (zh) | 一种任务调度的方法及装置 | |
CN113569987A (zh) | 模型训练方法和装置 | |
US10185598B2 (en) | Method and system for offloading industrial tasks in a human-machine interface panel to other devices | |
CN111782390B (zh) | 定时任务的调度方法及相关设备 | |
CN111858007A (zh) | 一种基于消息中间件的任务调度方法方法和装置 | |
CN110569113A (zh) | 分布式任务的调度方法及系统、计算机可读存储介质 | |
CN110532044A (zh) | 一种大数据批处理方法、装置、电子设备及存储介质 | |
CN107861715B (zh) | 一种业务组建系统及方法 | |
CN111190732A (zh) | 定时任务处理系统及方法、存储介质和电子设备 | |
CN117076096A (zh) | 任务流程的执行方法、装置、计算机可读介质及电子设备 | |
Pham et al. | Autonomic fine-grained migration and replication of component-based applications across multi-clouds | |
CN107018160B (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 |