CN112148445A - 一种基于大数据技术的分布式任务调度方法 - Google Patents
一种基于大数据技术的分布式任务调度方法 Download PDFInfo
- Publication number
- CN112148445A CN112148445A CN202010939553.9A CN202010939553A CN112148445A CN 112148445 A CN112148445 A CN 112148445A CN 202010939553 A CN202010939553 A CN 202010939553A CN 112148445 A CN112148445 A CN 112148445A
- Authority
- CN
- China
- Prior art keywords
- task
- node
- task scheduling
- executed
- distributed
- 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
- 238000000034 method Methods 0.000 title claims abstract description 28
- 238000005516 engineering process Methods 0.000 title claims abstract description 14
- 238000012545 processing Methods 0.000 claims abstract description 7
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
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
-
- 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/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- 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
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
本发明涉及数据处理领域,具体是一种基于大数据技术的分布式任务调度方法,包括如下步骤:S1、程序包或HTTP接口进行注册;S2、将所有创建的任务节点串联起来形成待执行任务的工作流程;S3、将配置好的工作流程注册到数据库或分布式服务框架中;S4、初始化、注册并启动任务调度节点,任务调度节点将待执行任务下发给未发生负载情况任务执行节点;S5、初始化、注册并启动任务执行节点,任务执行节点持续接收待执行任务并执行;S6、任务执行节点执行完该待执行任务后,将执行情况上报给任务调度节点;解决了任务调度没有补偿机制、宕机时,剩余待调度任务无法执行、对大数据相关程度调度支持性低以及度的任务过多时,任务运行效率会明显下降的问题。
Description
技术领域
本发明涉及数据处理领域,具体是指一种基于大数据技术的分布式任务调度方法。
背景技术
任务调度***在数据平台中是非常核心的功能模块。在日常的数据处理中,定时运行业务时需要对任务进行相关的调度配置,让其在设定的时间定时的运行任务,比如定时从数据库将新增数据导入到数据平台,将数据平台处理后的数据导出到数据库或者是文件***,随着大数据行业的逐渐发展,在实际的生产环境中会存在多种类型的任务调度需求,传统的任务调度***目前无法完全支持,其存在的弊端如下:
1)传统的任务调度没有补偿机制
如果调度的任务在执行期间出现异常后,没有任务自动补偿机制,需要人工干预,让任务重新运行。
2)传统的任务调度***不支持集群模式
传统的任务调度***属于单机模式,存在单点故障,如果调度***出现异常后,所有还未运行的待调度任务都无法正常运行。
3)传统的任务调度***对大数据生态圈支持性不好
传统的任务调度***可以调用大部分常规的单机程序,但是对MapReduce、Spark、Fl ink等大数据计算程序支持性不好,需要用其他程序进行封装之后才可调度。
4)同时调度的任务过多时,任务运行效率会明显下降
传统的任务调度***在配置了很多调度任务后,当同时有大量待调度任务需执行时,任务的运行效率将大幅下降。
发明内容
基于以上问题,本发明提供了一种基于大数据技术的分布式任务调度方法,利用分布式运行调度方法,解决了任务调度没有补偿机制、宕机时,剩余的待调度任务无法执行、对大数据相关程度调度支持性低以及度的任务过多时,任务运行效率会明显下降的问题。
为解决以上技术问题,本发明采用的技术方案如下:
一种基于大数据技术的分布式任务调度方法,包括如下步骤:
S1、根据任务处理需求,将独立运行的程序包或HTTP接口进行注册;
S2、创建任务节点,配置任务节点信息,将所有创建的任务节点串联起来形成待执行任务的工作流程;
S3、将配置好的工作流程的详细信息注册到数据库中,工作流程的简要信息注册到分布式服务框架中;
S4、初始化任务调度节点,注册并启动任务调度节点,任务调度节点定时扫描分布式服务框架中的数据,如有待执行任务,则将待执行任务下发给未发生负载情况的任务执行节点;
S5、初始化任务执行节点,注册并启动任务执行节点,注册好的任务执行节点处于等待状态,持续接收任务调度节点下发待执行任务并执行该待执行任务;
S6、任务执行节点执行完该待执行任务后,将执行情况上报给任务调度节点,任务调度节点根据任务执行节点反馈的执行情况进行状态展示。
进一步,所述步骤S1中,注册的对象为程序包,则填写程序运行的主类和运行参数,注册对象是HTTP接口,则填写HTTP接口的地址路径和调用类型。
进一步,所述步骤S4中,初始化任务调度端的Netty远程调用环境,启动任务调度节点的Netty远程调用服务。
进一步,所述步骤S4中,任务调度节点读取待执行任务的过程包括:
S41、任务调度节点启动分布式锁,从分布式服务框架数据目录中读取待执行任务的简要信息,并利用分布式锁将该数据目录锁定;
S42、得到分布式锁的任务调度节点从分布式服务框架中读取待执行任务的简要信息;
S43、得到分布式锁的任务调度节点根据简要信息从数据库中读取待执行任务的详细信息;
S44、将读取完成的待执行任务从分布式服务框架数据目录中删除,并释放该任务调度的分布式锁。
进一步,所述步骤S41中,该任务调度节点从分布式服务框架读取的数据目录被分布式服务框架中其他任务调度节点锁住,则所述其他任务调度节点等待该分布式锁的释放。
进一步,所述步骤S4中,任务调度节点下发待执行任务的过程包括:
S441、任务调度节点配置任务执行相关内容;
S442、任务调度节点从分布式服务框架读取可执行任务的任务执行节点列表并判断工作状态;
S443、任务调度节点通过Rpc的形式,将待执行任务下发给未发生负载情况的任务执行节点。
进一步,所述步骤S6中,初始化任务执行端的Netty远程调用环境,启动任务执行节点的Netty远程调用服务。
与现有技术相比,本发明的有益效果是:提出了一种基于分布式服务框架的任务调度方法,此任务调度方法适用于大规模的任务调度环境,处理各种独立灵活的任务,解决了现有技术中单机模式,单点故障则未运行的待执行任务无法正常运行的问题,对程序包或HTTP接口进行注册,且配置工作流程的方式创建待执行任务,解决了现有技术中,任务调度***对大数据相关程序调度支持性低的问题,在任务调度节点下发待执行任务时,只将待执行任务下发给未发生负载情况的任务执行节点,解决了任务执行节点同时执行的待执行任务过多时,任务运行效率会明显下降问题。
附图说明
图1为本发明的流程图。
具体实施方式
下面结合附图对本发明作进一步的说明。本发明的实施方式包括但不限于下列实施例。
如图1所述,一种基于大数据技术的分布式任务调度方法,包括如下步骤:
S1、根据任务处理需求,将独立运行的程序包或HTTP接口进行注册;
其中,根据实际的任务处理需求,开发独立运行的业务处理专用程序包或HTTP接口,如果是程序包,则要求程序包以及依赖包打包成一个整体包,支持的程序语言包括Java、Python、Sql、Shell、存储过程、MapReduce、Flink、Spark等。
另外,如果是程序包,则填写包含但不限于程序运行的主类、运行参数信息,如果是接口,则填写接口的地址路径,接口的调用类型包含但不限于GET、POST、PUT。
基于上述操作,解决了现有技术中的任务调用***对Java、Python、Sql、Shell、存储过程、MapReduce、Flink、Spark等大数据计算机程序支持性差,需要用其他程序进行封装之后才可调度的问题。
S2、创建任务节点,配置任务节点信息,将所有创建的任务节点串联起来形成待执行任务的工作流程;
其中,添加的任务节点类型包含但不限于Python节点、存储过程节点、Spark节点、接口节点和依赖节点。
另外,配置任务节点信息包含但不限于主函数、失败重试次数和告警类型。
S3、将配置好的工作流程的详细信息注册到数据库中,工作流程的简要信息注册到分布式服务框架中;
S4、初始化任务调度节点,注册并启动任务调度节点,任务调度节点定时扫描分布式服务框架中的数据,如有待执行任务,则将待执行任务下发给未发生负载情况的任务执行节点;
其中,初始化任务调度端的Netty远程调用环境,包含但不限于端口、任务处理程序,启动任务调度节点的Netty远程调用服务,同时注册任务调度节点。
另外,任务调度节点读取待执行任务的过程包括:
S41、任务调度节点启动分布式锁,从分布式服务框架数据目录中读取待执行任务的简要信息,并利用分布式锁将该数据目录锁定,如果该任务调度节点从分布式服务框架读取的数据目录被分布式服务框架中其他任务调度节点锁住,则其他任务调度节点等待该分布式锁的释放;
S42、得到分布式锁的任务调度节点从分布式服务框架中读取待执行任务的简要信息;
S43、得到分布式锁的任务调度节点根据简要信息从数据库中读取待执行任务的详细信息;
S44、将读取完成的待执行任务从分布式服务框架数据目录中删除,并释放该任务调度的分布式锁。
另外,任务调度节点下发待执行任务的过程包括:
S441、任务调度节点配置待执行任务相关内容,包含但不限于执行前置任务配置、正式执行任务配置和后置执行任务配置;
S442、任务调度节点从分布式服务框架读取可执行任务的任务执行节点列表并判断工作状态;
S443、任务调度节点通过Rpc的形式,将待执行任务下发给未发生负载情况的任务执行节点。
基于上述操作,本发明基于分布式服务框架、Netty等框架采用分布式的任务下发方式进行任务调度,利用分布式部署的方式,如出现现有技术中的单点故障,依然可以继续进行未运行的待执行任务的下发,最后只需将任务信息通过分布式服务框架实现信息的全局唯一性即可;本发明任务调度节点下发带执行任务时,会从分布式服务框架读取可执行任务的任务执行节点列表并判断任务执行节点的负载情况,选择最佳的一个任务执行节点进行任务下发,解决了现有技术,同时调度任务过多时,任务运行效率明显下降的问题。
S5、初始化任务执行节点,注册并启动任务执行节点,注册好的任务执行节点处于等待状态,持续接收任务调度节点下发待执行任务并执行该待执行任务;
其中,初始化任务执行端的Netty远程调用环境,包含但不限于端口、任务处理程序,启动任务执行节点的Netty远程调用服务,同时注册任务执行节点,根据步骤2中配置的工作流程数量确定需要启动多少个任务执行节点。
S6、任务执行节点执行完该待执行任务后,将执行情况上报给任务调度节点,任务调度节点根据任务执行节点反馈的执行情况进行状态展示。
其中,任务调度节点下发的待执行任务需进行任务初始化,利用任务执行节点进行具体的待执行任务执行,并获取任务的执行情况,最终将执行情况上报给任务调度节点,任务调度节点根据任务执行节点反馈的执行情况进行状态展示,如果是失败任务,还将进行任务告警通知。
如上即为本发明的实施例。上述实施例以及实施例中的具体参数仅是为了清楚表述发明人的发明验证过程,并非用以限制本发明的专利保护范围,本发明的专利保护范围仍然以其权利要求书为准,凡是运用本发明的说明书及附图内容所作的等同结构变化,同理均应包含在本发明的保护范围内。
Claims (7)
1.一种基于大数据技术的分布式任务调度方法,其特征在于,包括如下步骤:
S1、根据任务处理需求,将独立运行的程序包或HTTP接口进行注册;
S2、创建任务节点,配置任务节点信息,将所有创建的任务节点串联起来形成待执行任务的工作流程;
S3、将配置好的工作流程的详细信息注册到数据库中,工作流程的简要信息注册到分布式服务框架中;
S4、初始化任务调度节点,注册并启动任务调度节点,任务调度节点定时扫描分布式服务框架中的数据,如有待执行任务,则将待执行任务下发给未发生负载情况的任务执行节点;
S5、初始化任务执行节点,注册并启动任务执行节点,注册好的任务执行节点处于等待状态,持续接收任务调度节点下发待执行任务并执行该待执行任务;
S6、任务执行节点执行完该待执行任务后,将执行情况上报给任务调度节点,任务调度节点根据任务执行节点反馈的执行情况进行状态展示。
2.根据权利要求1所述的一种基于大数据技术的分布式任务调度方法,其特征在于:所述步骤S1中,注册的对象为程序包,则填写程序运行的主类和运行参数,注册对象是HTTP接口,则填写HTTP接口的地址路径和调用类型。
3.根据权利要求1所述的一种基于大数据技术的分布式任务调度方法,其特征在于:所述步骤S4中,初始化任务调度端的Netty远程调用环境,启动任务调度节点的Netty远程调用服务。
4.根据权利要求3所述的一种基于大数据技术的分布式任务调度方法,其特征在于:所述步骤S4中,任务调度节点读取待执行任务的过程包括:
S41、任务调度节点启动分布式锁,从分布式服务框架数据目录中读取待执行任务的简要信息,并利用分布式锁将该数据目录锁定;
S42、得到分布式锁的任务调度节点从分布式服务框架中读取待执行任务的简要信息;
S43、得到分布式锁的任务调度节点根据简要信息从数据库中读取待执行任务的详细信息;
S44、将读取完成的待执行任务从分布式服务框架数据目录中删除,并释放该任务调度的分布式锁。
5.根据权利要求4所述的一种基于大数据技术的分布式任务调度方法,其特征在于:所述步骤S41中,该任务调度节点从分布式服务框架读取的数据目录被分布式服务框架中其他任务调度节点锁住,则所述其他任务调度节点等待该分布式锁的释放。
6.根据权利要求5所述的一种基于大数据技术的分布式任务调度方法,其特征在于:所述步骤S4中,任务调度节点下发待执行任务的过程包括:
S441、任务调度节点配置任务执行相关内容;
S442、任务调度节点从分布式服务框架读取可执行任务的任务执行节点列表并判断工作状态;
S443、任务调度节点通过Rpc的形式,将待执行任务下发给未发生负载情况的任务执行节点。
7.根据权利要求1所述的一种基于大数据技术的分布式任务调度方法,其特征在于:所述步骤S6中,初始化任务执行端的Netty远程调用环境,启动任务执行节点的Netty远程调用服务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010939553.9A CN112148445A (zh) | 2020-09-09 | 2020-09-09 | 一种基于大数据技术的分布式任务调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010939553.9A CN112148445A (zh) | 2020-09-09 | 2020-09-09 | 一种基于大数据技术的分布式任务调度方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112148445A true CN112148445A (zh) | 2020-12-29 |
Family
ID=73890098
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010939553.9A Pending CN112148445A (zh) | 2020-09-09 | 2020-09-09 | 一种基于大数据技术的分布式任务调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112148445A (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103078941A (zh) * | 2012-12-31 | 2013-05-01 | 中金数据***有限公司 | 一种分布式计算***的任务调度方法及*** |
CN105005503A (zh) * | 2015-07-26 | 2015-10-28 | 孙凌宇 | 基于元胞自动机的云计算负载均衡任务调度方法 |
CN105100259A (zh) * | 2015-08-18 | 2015-11-25 | 北京京东尚科信息技术有限公司 | 一种分布式定时任务执行方法和*** |
CN108733459A (zh) * | 2017-04-13 | 2018-11-02 | 腾讯科技(深圳)有限公司 | 一种分布式定时的方法、服务器以及*** |
CN109254842A (zh) * | 2017-07-12 | 2019-01-22 | 腾讯科技(深圳)有限公司 | 分布式流式***的资源管理方法、装置及可读存储介质 |
CN109933414A (zh) * | 2017-12-18 | 2019-06-25 | 飞狐信息技术(天津)有限公司 | 一种任务调度方法、装置及*** |
CN110321119A (zh) * | 2018-03-30 | 2019-10-11 | 优酷网络技术(北京)有限公司 | 数据处理模块的生成方法、服务器和客户端 |
CN110543354A (zh) * | 2019-09-05 | 2019-12-06 | 腾讯科技(深圳)有限公司 | 任务调度方法、装置、设备及存储介质 |
CN111090519A (zh) * | 2019-12-05 | 2020-05-01 | 东软集团股份有限公司 | 任务执行方法、装置、存储介质及电子设备 |
-
2020
- 2020-09-09 CN CN202010939553.9A patent/CN112148445A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103078941A (zh) * | 2012-12-31 | 2013-05-01 | 中金数据***有限公司 | 一种分布式计算***的任务调度方法及*** |
CN105005503A (zh) * | 2015-07-26 | 2015-10-28 | 孙凌宇 | 基于元胞自动机的云计算负载均衡任务调度方法 |
CN105100259A (zh) * | 2015-08-18 | 2015-11-25 | 北京京东尚科信息技术有限公司 | 一种分布式定时任务执行方法和*** |
CN108733459A (zh) * | 2017-04-13 | 2018-11-02 | 腾讯科技(深圳)有限公司 | 一种分布式定时的方法、服务器以及*** |
CN109254842A (zh) * | 2017-07-12 | 2019-01-22 | 腾讯科技(深圳)有限公司 | 分布式流式***的资源管理方法、装置及可读存储介质 |
CN109933414A (zh) * | 2017-12-18 | 2019-06-25 | 飞狐信息技术(天津)有限公司 | 一种任务调度方法、装置及*** |
CN110321119A (zh) * | 2018-03-30 | 2019-10-11 | 优酷网络技术(北京)有限公司 | 数据处理模块的生成方法、服务器和客户端 |
CN110543354A (zh) * | 2019-09-05 | 2019-12-06 | 腾讯科技(深圳)有限公司 | 任务调度方法、装置、设备及存储介质 |
CN111090519A (zh) * | 2019-12-05 | 2020-05-01 | 东软集团股份有限公司 | 任务执行方法、装置、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111767092B (zh) | 作业执行方法、装置、***及计算机可读存储介质 | |
US8910166B2 (en) | Automatic transcoding and semantic adaptation between scripting and workflow systems | |
CN109857801B (zh) | 基于四层架构的智慧灌区e平台及数据处理方法 | |
US8001429B2 (en) | Method and system for automated handling of errors in execution of system management flows consisting of system management tasks | |
US9195455B2 (en) | Reducing downtime when patching multiple inter-dependent software components | |
US9122520B2 (en) | Generic wait service: pausing a BPEL process | |
US20100070553A1 (en) | Dynamic service invocation and service adaptation in bpel soa process | |
US20100241705A1 (en) | System for designing and performing web application | |
US20060230396A1 (en) | Deployment of reusable software components to be hosted in a container running on a modular code runtime platform through a runtime platform extension point | |
JP2003518691A (ja) | N層ソフトウェア・コンポーネント・アーキテクチャー・アプリケーションを作成する方法、システムおよびアーティクル | |
US20120005520A1 (en) | Simplifying automated software maintenance of data centers | |
US20110078673A1 (en) | Persisting the changes for managed components in an application server | |
CN114077423A (zh) | 基于移动跨平台的机场app开发容器架构 | |
CN101751288A (zh) | 应用进程调度的方法、设备及*** | |
US8924947B2 (en) | Direct deployment of static content | |
WO2023231704A1 (zh) | 算法运行方法、装置、设备、存储介质 | |
CN105743955A (zh) | 一种扩展JavaScript对象方法 | |
CN115543546B (zh) | 一种基于Spring的模块热部署方法及*** | |
CN111147291B (zh) | 一种服务维护方法及装置 | |
US9996344B2 (en) | Customized runtime environment | |
CN115220863A (zh) | 容器应用的运维方法、装置、计算机设备和存储介质 | |
CN112148445A (zh) | 一种基于大数据技术的分布式任务调度方法 | |
US20120159266A1 (en) | Method, apparatus or software for processing exceptions produced by an application program | |
CN113157253A (zh) | 一种企业研发私有云搭建的方法 | |
CN115129740B (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 |