CN115658246A - 调度引擎中间件数据处理方法 - Google Patents
调度引擎中间件数据处理方法 Download PDFInfo
- Publication number
- CN115658246A CN115658246A CN202210712388.2A CN202210712388A CN115658246A CN 115658246 A CN115658246 A CN 115658246A CN 202210712388 A CN202210712388 A CN 202210712388A CN 115658246 A CN115658246 A CN 115658246A
- Authority
- CN
- China
- Prior art keywords
- task
- execution
- management center
- scheduling engine
- center module
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 14
- 238000012544 monitoring process Methods 0.000 claims abstract description 10
- 230000006870 function Effects 0.000 claims abstract description 8
- 238000001914 filtration Methods 0.000 claims abstract description 4
- 230000036541 health Effects 0.000 claims abstract description 4
- 238000007726 management method Methods 0.000 claims description 30
- 238000013439 planning Methods 0.000 claims description 29
- 238000000034 method Methods 0.000 claims description 25
- 230000008569 process Effects 0.000 claims description 17
- 238000012795 verification Methods 0.000 claims description 17
- 238000012545 processing Methods 0.000 claims description 14
- 238000010586 diagram Methods 0.000 claims description 10
- 238000002955 isolation Methods 0.000 claims description 10
- 238000009826 distribution Methods 0.000 claims description 8
- 238000004806 packaging method and process Methods 0.000 claims description 8
- 230000004083 survival effect Effects 0.000 claims description 6
- 230000001133 acceleration Effects 0.000 claims description 3
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 238000003860 storage Methods 0.000 claims description 3
- 238000011144 upstream manufacturing Methods 0.000 claims description 3
- 230000000694 effects Effects 0.000 claims description 2
- 238000005206 flow analysis Methods 0.000 claims description 2
- 238000011161 development Methods 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000013515 script Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000003032 molecular docking Methods 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 238000007670 refining Methods 0.000 description 2
- 230000001502 supplementing effect Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000003208 petroleum Substances 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明实施例提出了一种调度引擎中间件数据处理方法,所述调度引擎中间件包括:负载均衡模块、网关Gateway模块,调度引擎管理中心模块、监控&管控单元、资源单元;其中该网关Gateway模块是为各个服务提供统一入口,由路由过滤和转发等功能组成,根据外部调用和内部任务管理集群负载情况进行选择性分发任务;调度引擎管理中心模块能够根据执行机的并发、负载、CPU使用率、内存使用率等性能指标进行最优选择,并将任务分发到对应的执行机;监控&管控单元用于对当前集群下的所有服务进行管控,通过实时心跳收集各服务的健康情况以及使用率指标;资源单元用于为调度引擎管理中心模块提供各种所需的资源,以使得调度引擎管理中心模块匹配服务器、支持容器化部署、支持大数据资源管理组件Yarn。
Description
技术领域
本发明提出了一种数据处理方法,特别是指软分布式调度引擎中间件的数据处理方法。
背景技术
随着互联网和信息产业的快速发展,大数据应用市场不断扩大,大数据在推动我国经济转型升级过程中发挥着关键作用。在数据处理领域有一个说法,数据是新时代的石油。由此可见,数据已经渗透到当今每一个行业和业务职能领域,成为重要的生产因素;且随着技术的发展,数据已经逐渐成为现代社会发展的资源,各行各业都开始重视数据的价值。
在大数据平台中通常会有各式各样的任务需要按照一定的时间间隔和先后顺序有序进行。在数据处理类的任务开发过程中,常常会将一个数据处理流拆分为一个一个的子任务,在执行时再根据不同的需求进行组装,或者在组装时将一个处理流嵌入到另外一个处理流以达到一个完整的数据流。传统行业通过人工流程的组装方式,操作过程复杂、容易出错、上下级依赖发生错误无法正确处理、无法直观的看到任务进度等问题!
发明内容
本发明提供了一种数据处理方法,能够提供一种调度引擎中间件数据处理方法,能够实现对任务数据的有效处理。
为了达到上述目的,本发明实施例提出了一种调度引擎中间件数据处理方法,所述调度引擎中间件包括:负载均衡模块、网关Gateway模块,调度引擎管理中心模块、监控&管控单元、资源单元;其中该网关Gateway模块是为各个服务提供统一入口,由路由过滤和转发等功能组成,根据外部调用和内部任务管理集群负载情况进行选择性分发任务;调度引擎管理中心模块能够根据执行机的并发、负载、CPU使用率、内存使用率等性能指标进行最优选择,并将任务分发到对应的执行机;监控&管控单元用于对当前集群下的所有服务进行管控,通过实时心跳收集各服务的健康情况以及使用率指标;资源单元用于为调度引擎管理中心模块提供各种所需的资源,以使得调度引擎管理中心模块匹配服务器、支持容器化部署、支持大数据资源管理组件Yarn;
其中,调度引擎管理中心模块连接上游的使用方,并连接下游的各类执行资源;其中该调度引擎管理中心模块采用MySql数据库作为存储层,Redis 作为加速层,整体架构采用了分布式的架构;其中所述调度引擎管理中心模块包括:任务扫描器、任务解析器、日志记录器、智能负载器、任务探测器、任务执行器;
调度引擎管理中心模块用于执行以下步骤:
负载均衡步骤:其中该执行机将当前的负载状态汇报到调度引擎管理中心模块的任务扫描器缓存,当调度引擎管理中心模块探测到任务已经可以执行时,将任务提交到任务解析器对任务进行解析,然后将解析后的任务提交到智能负载器;智能负载器根据任务执行器回报的情况智能选择任务执行器以及及到达任务执行器的路由,并同时记录执行日志;智能负载器将任务发送到任务执行器以对任务进行执行;在任务执行的过程中,任务探测器实时的探测每一个任务的执行情况并产生日志;当任务完成后,任务执行器将执行结果发送调度引擎管理中心模块,同时修改执行日志的结果;
任务流解析步骤:调度引擎管理中心模块接收到任务流数据;对任务流数据进行校验;如果校验不通过就直接结束本次调用,如果校验通过则进行环路验证以确定是否存在环路,如果存在环路就直接结束本次调用,如果不存在环路计算任务流下次的执行时间,然后将任务流入库,同时对任务流的最小粒度的任务拆分,以将任务拆分到最小执行单元;将拆分到最小执行单元后的任务记录到数据库中;
任务流拆解步骤:调度引擎管理中心模块接收到任务流数据;对任务流数据进行校验;如果校验不通过就直接结束本次调用,如果校验通过则进行环路验证以确定是否存在环路,如果存在环路就直接结束本次调用,如果不存在环路计算任务流下次的执行时间,然后将任务流入库,同时对任务流的最小粒度的任务拆分,以将任务拆分到最小执行单元;将拆分到最小执行单元后的任务记录到数据库中。
任务流转步骤:调度引擎管理中心模块会对当前使用的任务流进行任务流自检,当验证任务流处于即将执行的时候,会将该任务流进行预加载并生成运行计划图,该运行计划图中包含以下两项:运行流实例、待运行节点。调度引擎管理中心模块会同时对待运行节点进行自检,当发现存在待执行任务后,开始对待执行任务节点做可执行性校验,校验过程如下:验证节点的携带的参数的信息是否完善;验证该节点所在的运行计划图的状态,当为失败时直接置为失败;验证节点的上级依赖是否执行完毕和错误重试完毕;验证该节点是否是内置类型任务,内置类型的任务进行设置内置执行机资源服务;验证该节点所使用的服务器运行资源、并发要求等是否满足;
运行计划图关闭步骤:运行计划图中包含以下两项:运行流实例、待运行节点;在一个运行计划图内的全部原子任务全部执行完毕后,运行计划图的状态应由运行中更改为完成;其中完成可以分为成功或失败;调度引擎管理端将对所有运行中的运行计划图进行原子任务检查,根据运行计划图绑定值,查询所有关联该计划图的原子任务,当验证所有的原子任务全部执行完毕后,基于原子任务的状态进行修改运行计划图的最终运行状态,并将该运行计划图变更为完结状态;
任务错误重试步骤:调度引擎管理中心模块会对所有运行中的执行计划图中的已执行日志节点进行检查,将还有剩余错误重试的日志任务经过转换处理后重新加载为对应运行计划图的重试任务,并根据预先设定的重试频率进行重新执行,直至剩余重试次数为0;该任务错误重试流程用于遍历执行计划图中的所有子任务进行遍历以确定这些子任务是否还有剩余错误重试次数,如果还有则重新执行该错误的子任务。
进一步的,所述调度引擎管理中心模块对于任务的调用,是基于调度引擎管理中心模块的服务注册中心进行一系列的任务分发负载的;其中该使用方在进行执行机的扩展后,只需要将服务注册到调度引擎管理中心模块的服务注册中心,这样调度引擎管理中心模块就能够直接对自定义的执行机进行管控。
进一步的,所述任务调度引擎中间件还用于执行以下步骤:
并发控制步骤:任务调度引擎中间件为保证当前任务的顺利执行,除了需要及时对执行器的负载能力进行判断,同时还要根据执行机的负载能力进行并发限制;用户可用QoS管理服务进行执行机的并发管理,任务管理中心不断感知并发状态,当发现某一个执行机的并发已经达到极限,就将当前的执行机标记为不可用状态;当下一次汇报通知调度引擎管理中心模块之后,发现执行机的任务并发能力恢复,就重新将该执行机标记为可用,进行正常路由。执行机内部开放QoS端口,用户可在telnet端设置执行机的并发数量;当管理中心将任务提交到执行机后,将该任务机的当前可用并发数-1,开始调度;当任务机的并发度为0的时候,将任务重新打回到调度引擎管理中心模块,同时该执行机被调度引擎管理中心模块标记为不可用状态。
进一步的,还包括执行机,所述执行机执行以下步骤:
执行机上报自己可分配的资源和最高剩余并发数量以使得调度引擎管理中心模块根据执行机上报的参数和当前的任务选择对应的执行机执行任务;其中执行机至少上报以下参数:CPU核心数量,内存利用率,执行机任务执行线程池利用率,执行机QOS管理任务最大并发数量余量。
进一步的,所述执行机执行以下步骤:
当执行机接收到任务执行通知和任务执行详细信息后,将进行任务执行种类断定:
当验证为yarn类型的资源隔离任务,会借助Hadoop的yarn组件进行任务的封装,基于内置Yarn封装引擎将一个任务封装为Yarn规范的任务,并将任务根据分配的资源用量提交到yarn进行任务的执行,并实时监听任务的执行进度和执行日志;
当验证为常规任务的时候,执行机会基于任务类型自动选举对应的执行组件进行任务的执行,并实时反馈执行日志,和任务的存活状态、执行结果信息;
任务执行的同时,执行机会对该任务进行不间断的任务存活验证,并不断以长链接的形式向调度引擎管理中心进行任务续期,阻止任务超时报错。
所述执行机还用于执行任务活性保证,包括:
当任务管理中心宕机后,执行机将会选举其他的服务通道来进行发送;当只有一个服务通道时,该执行机可以认定所有的管理中心都已经宕机,则将任务对应的结果都丢弃。
本发明的上述技术方案的有益效果如下:上述技术方案提出了调度引擎中间件数据处理方法,能够对企业级海量数据进行采集、计算、存储、加工的脚本和任务流程进行统一的管控,同时统一标准和口径;将任务平台统一治理后,会形成标准处理流,再进行存储,形成大数据资源调度层,进而为客户提供高效数据服务计算,支撑企业用户数据中台建设与数字化转型;上述方案具有以下的至少一个优点:平台化:透明封装通用技术组件,技术成熟高复用度;自主化:业务人员自主配置,大幅缩减技术实现时间;统一化:脚本的统一管控和任务流的统一管控;管理化:支持任务的补批、重跑、停止、暂停和任务进度监控的可视化操作;集群化:通过对当前企业数据量和任务量的评估,可进行服务集群的横向扩展;自助化:节省时间、节省成本;精细化:可以实现相关任务的资源隔离和租户级别的任务隔离;扩展化:可以支持外部平台自主对接的方式成为调度引擎的执行机。
附图说明
图1为本发明实施例的基于微服务的架构设计的任务调度引擎中间件的系统架构图;
图2为本发明实施例的任务分发的流程示意图;
图3为本发明实施例的任务流数据拆解的流程示意图;
图4为本发明实施例的任务流转的流程示意图;
图5为本发明实施例的运行计划图的关闭流程的流程示意图;
图6为本发明实施例的任务错误重试流程示意图;
图7为本发明实施例的用于对子任务进行执行的执行机的结构示意图;
图8为本发明实施例的执行机对于常规任务和yarn任务的执行方式的流程示意图;
图9为本发明实施例的使用方根据调度引擎管理中心模块的调度引擎 SDK进行执行机扩展的流程示意图;
图10为本发明实施例的并发控制的流程示意图;
图11为本发明实施例的任务保证机制的流程示意图;
图12为本发明实施例的调度引擎中间件示意图;
图13为本发明实施例的任务分发的流程示意图;
图14为本发明实施例的调度引擎自定义执行机的流程示意图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
为了解决以上问题,发明人提出了一种对工作任务编排、执行、管理的方案,该方案包括基于微服务的架构设计的任务调度引擎中间件;能够稳定可靠的分布式实现,可与Docker容器无缝集成。
如图1所示的,本发明实施例的基于微服务的架构设计的任务调度引擎中间件,包括负载均衡模块、网关Gateway模块,调度引擎管理中心模块、监控&管控单元、资源单元;其中该网关Gateway模块是为各个服务提供统一入口,由路由过滤和转发等功能组成,根据外部调用和内部任务管理集群负载情况进行选择性分发任务。调度引擎管理中心模块能够根据执行机的并发、负载、CPU使用率、内存使用率等性能指标进行最优选择,并将任务分发到对应的执行机。监控&管控单元用于对当前集群下的所有服务进行管控,通过实时心跳收集各服务的健康情况以及使用率等指标。资源单元用于为调度引擎管理中心模块提供各种所需的资源,以使得调度引擎管理中心模块匹配服务器、支持容器化部署、支持大数据资源管理组件Yarn。
调度引擎管理中心模块采用轮询数据库的方式触发任务的执行,即:
当任务类型为单节点时,根据任务配置信息通过预设通讯协议通知可用执行机执行该任务;
当任务类型为任务流时,通过解析任务流上下文依赖关系,根据依赖关系进行任务的分发和调用;当上级任务失败或出现系统异常时,系统主动根据配置策略进行重试或快速失败。
调度引擎管理中心模块与执行机之间建立长连接关系,调度引擎管理中心模块不断感知执行机实时状态,并基于实时状态进行任务的分发与维护。
执行机执行任务时,基于任务配置项进行资源隔离并执行任务;同时将执行状态与执行日志通过消息中间件推送到该任务的使用方。
其中,该调度引擎管理中心模块在执行任务分发时执行的步骤如图2所示的。其中调度引擎管理中心模块包括:任务扫描器、任务解析器、日志记录器、智能负载器、任务探测器、任务执行器;其中该执行机将当前的负载状态汇报到调度引擎管理中心模块的任务扫描器缓存,当调度引擎管理中心模块探测到任务已经可以执行时,将任务提交到任务解析器对任务进行解析,然后将解析后的任务提交到智能负载器;智能负载器根据任务执行器回报的情况智能选择任务执行器以及及到达任务执行器的路由,并同时记录执行日志;智能负载器将任务发送到任务执行器以对任务进行执行。在任务执行的过程中,任务探测器实时的探测每一个任务的执行情况并产生日志。当任务完成后,任务执行器将执行结果发送调度引擎管理中心模块,同时修改执行日志的结果。
其中,调度引擎管理中心模块连接上游的使用方(也就是任务使用方),并连接下游的各类执行资源;其中该调度引擎管理中心模块采用MySql数据库作为存储层,Redis作为加速层,整体架构采用了分布式的架构情况,从而能够最大限度的保证调度引擎管理中心模块的高效运行。
其中该调度引擎管理中心模块具有多种对外开放的API接口以及各类数据规范标准,以使调度引擎管理中心模块对使用方的所有数据进行有效性校验。如图3所示的为本发明实施例中的对任务流的数据进行拆解的流程,其包括:
调度引擎管理中心模块接收到任务流数据;
对任务流数据进行校验;如果校验不通过就直接结束本次调用,如果校验通过则进行环路验证以确定是否存在环路,如果存在环路就直接结束本次调用,如果不存在环路计算任务流下次的执行时间,然后将任务流入库,同时对任务流的最小粒度的任务拆分,以将任务拆分到最小执行单元;
将拆分到最小执行单元后的任务记录到数据库中。
通过如图3所示的步骤,可以首先对任务进行有效性检验以及环路验证,并将有效的任务产分到最小执行单元。
如图4所示的为任务流转过程的示意图,其中调度引擎管理中心模块会对当前使用的任务流进行任务流自检,当验证任务流处于即将执行的时候,会将该任务流进行预加载并生成运行计划图,该运行计划图中包含以下两项:运行流实例、待运行节点。调度引擎管理中心模块会同时对待运行节点进行自检,当发现存在待执行任务后,开始对待执行任务节点做可执行性校验,校验过程如下:
1.验证节点的携带的参数的信息是否完善;
2.验证该节点所在的运行计划图的状态,当为失败时直接置为失败;
3.验证节点的上级依赖是否执行完毕和错误重试完毕;
4.验证该节点是否是内置类型任务,内置类型的任务进行设置内置执行机资源服务;
5.验证该节点所使用的服务器运行资源、并发要求等是否满足;
当待运行的节点满足了全部的运行条件,开始根据任务配置的执行资源,拉取服务器信息,基于负载均衡方案进行任务分发。
图5所示的为调度引擎管理中心模块对于运行计划图的关闭流程,其中运行计划图是如图4所示的任务流转过程中建立的,该运行计划图中包含以下两项:运行流实例、待运行节点。在一个运行计划图内的全部原子任务全部执行完毕后,运行计划图的状态应由运行中更改为完成;其中完成可以分为成功或失败;调度引擎管理端将对所有运行中的运行计划图进行原子任务检查,根据运行计划图绑定值,查询所有关联该计划图的原子任务,当验证所有的原子任务全部执行完毕后,基于原子任务的状态进行修改运行计划图的最终运行状态,并将该运行计划图变更为完结状态!具体可以如图5所示的,调度引擎管理中心模块对于运行计划图的关闭流程包括:
获取运行计划图列表,确定该运行计划图列表中是否存在运行中的运行计划,如果否则步骤结束;
获取正在运行中的运行计划图,以及该运行计划图下的所有子任务,确定这些子任务是否全部都完成,如果是则返回前一步继续,如果否则修改该运行计划图为完结状态,步骤结束。
如图6所示的为任务错误重试流程,其中调度引擎管理中心模块会对所有运行中的执行计划图中的已执行日志节点进行检查,将还有剩余错误重试的日志任务经过转换处理后重新加载为对应运行计划图的重试任务,并根据预先设定的重试频率进行重新执行,直至剩余重试次数为0。该任务错误重试流程用于遍历执行计划图中的所有子任务进行遍历以确定这些子任务是否还有剩余错误重试次数,如果还有则重新执行该错误的子任务。
在本发明实施例中,该调度引擎管理中心模块可以执行如图3-图6所示的各个步骤以对任务进行解析、拆分、分配、错误重试,将任务进行拆分后触发到执行机上。
如图7所示的为用于对子任务进行执行的执行机的结构示意图;其中该执行机也可以被称为调度引擎执行器。其中该执行机会主动向关联的调度引擎管理中心模块上报自己可分配的资源和最高剩余并发数量。如图7所示的,执行机上报的指标包括以下
CPU核心数量,
内存利用率,
执行机任务执行线程池利用率,
执行机QOS管理任务最大并发数量余量;
调度引擎管理中心模块可以根据执行机上报的上述参数,根据当前的任务选择对应的执行机执行任务。
图8是执行机对于常规任务和yarn任务的执行方式的流程示意图,当执行机接收到任务执行通知和任务执行详细信息后,将进行任务执行种类断定:
当验证为yarn类型的资源隔离任务,会借助Hadoop的yarn组件进行任务的封装,基于内置Yarn封装引擎将一个任务封装为Yarn规范的任务,并将任务根据分配的资源用量提交到yarn进行任务的执行,并实时监听任务的执行进度和执行日志;
当验证为常规任务的时候,执行机会基于任务类型自动选举对应的执行组件进行任务的执行,并实时反馈执行日志,和任务的存活状态、执行结果等信息。
任务执行的同时,执行机会对该任务进行不间断的任务存活验证,并不断以长链接的形式向调度引擎管理中心进行任务续期,阻止任务超时报错。
在一种可能的实现方式中,调度引擎管理中心模块可以利用使用方自定义的扩展任务类型,使用自定义的执行机。如图9所示的为使用方根据调度引擎管理中心模块的调度引擎SDK进行执行机扩展的流程图;其包括:
调度引擎管理中心模块对于任务的调用,是基于调度引擎管理中心模块的服务注册中心进行一系列的任务分发负载的;其中该使用方在进行执行机的扩展后,只需要将服务注册到调度引擎管理中心模块的服务注册中心,这样调度引擎管理中心模块就能够直接基于调度引擎SDK对自定义的执行机进行管控。而使用方可以基于调度该调度引擎SDK自定义的执行机,进行任务的自动上报续约、服务器资源使用情况,方便调度引擎管理中心模块在进行任务分发时有一个合理的任务负载逻辑判断结果,自定义执行机支持的集群化部署。其中,对于使用方的说明可以参考如图12-图14所示的。
图10是任务调度引擎中间件对于并发控制的流程图,任务调度引擎中间件为保证当前任务的顺利执行,除了需要及时对执行器的负载能力进行判断,同时还要根据执行机的负载能力进行并发限制;用户可用QoS管理服务进行执行机的并发管理,任务管理中心不断感知并发状态,当发现某一个执行机的并发已经达到极限,就将当前的执行机标记为不可用状态;当下一次汇报通知调度引擎管理中心模块之后,发现执行机的任务并发能力恢复,就重新将该执行机标记为可用,进行正常路由。执行机内部开放QoS端口,用户可在telnet端设置执行机的并发数量;当管理中心将任务提交到执行机后,将该任务机的当前可用并发数-1,开始调度;当任务机的并发度为0的时候,将任务重新打回到调度引擎管理中心模块,同时该执行机被调度引擎管理中心模块标记为不可用状态。
如图11所示的为了保证任务管理中心的任务执行的高度可用性而设计的任务活性保证机制。由于任务管理中心在宕机的情况下,如果执行机已经将任务执行完毕,则任务结果无法发送到任务管理中心。此时,当任务管理中心宕机后,执行机将会选举其他的服务通道来进行发送;当只有一个服务通道时,该执行机可以认定所有的管理中心都已经宕机,则将任务对应的结果都丢弃。
如图12所示的,本发明实施例的调度引擎以注册中心为基础,包括一整套任务组装、调用、负载、回调、通知的机制,调度管理引擎将任务基于环路算法拆分为最小执行单位,生成运行实例,通过时钟轮算法将任务基于博易自研通讯协议负载到对应的执行机,执行机根据配置选择是否进行资源隔离和任务执行方式。该调度引擎通过高度可扩展化的开发方式,使得中间件使用方能够基于博易调度开发规范进行高度自由化、定制化的执行机开发方案!
其中,任务分发流程如图13所示的,包括:
1.使用方开发节点任务,设置任务参数和任务回调信息等参数;
2.将上述的任务组装为一个合法工作流,设置公共参数和可变参数等信息;
3.调度平台的任务流或者任务发布接口,进行任务的发布;
4.引擎经过上述3的方案进行任务的执行,执行完成后将结果返回到调度平台;
5.管理平台将组装和保存对应节点的执行日志,并持久化到结构化文件;
6.使用者可以调用调度引擎的开放接口对发布的工作流或者执行的任务进行任务状态、结果、日志的查看和查询。
其中,该调度引擎可以自定义执行机,具体方法如图14所示的,包括:
1.使用方通过调度引擎对外开放的SDK,进行自定义的执行机开发,并将开发好的服务注册到调度引擎的注册中心;
2.调度引擎在进行任务分发时候,会进行任务断言,当发现任务非当前执行机内置功能时,将从注册中心拉取该服务的服务器信息;
3.根据拉取到的服务器信息,当任务服务器能够满足执行条件时(即满足并发、负载)时,调度引擎会将该任务主动负载到自定义的扩展执行机。
根据本发明的上述实施例中给出的任务调度引擎中间件,能够对企业级海量数据进行采集、计算、存储、加工的脚本和任务流程进行统一的管控,同时统一标准和口径。将任务平台统一治理后,会形成标准处理流,再进行存储,形成大数据资源调度层,进而为客户提供高效数据服务计算,支撑企业用户数据中台建设与数字化转型。上述方案具有以下的优点:
平台化:透明封装通用技术组件,技术成熟高复用度;
自主化:业务人员自主配置,大幅缩减技术实现时间;
统一化:脚本的统一管控和任务流的统一管控;
管理化:支持任务的补批、重跑、停止、暂停和任务进度监控的可视化操作;
集群化:通过对当前企业数据量和任务量的评估,可进行服务集群的横向扩展;
自助化:节省时间、节省成本;
精细化:可以实现相关任务的资源隔离和租户级别的任务隔离;
扩展化:可以支持外部平台自主对接的方式成为调度引擎的执行机。
在本公开实施例中的方案,其具有以下的技术要点:
1.调度引擎为了保证任务能够被准确、准时加载并调用,其在任务加载中采用任务时钟轮算法,该算法能够保证任务再毫秒级别进行任务的转发和负载。
2.时钟轮算法可以模拟时钟秒针转动的方式,设置“秒针”间隔进行任务;当“秒针”到达指定位置的时,若发现在该位置存在任务,会将该任务抛出,并将该任务的详细信息,抛出到回调函数中,进行任务调用的相关逻辑。
3.多任务分发异步回调和QOS管理:调度引擎进行任务分发的时候,将全部的结果集通知全部以异步回调的类型进行操作,通过任务与执行机的长连接保存任务的执行标识进行任务的实时管理。
4.执行机提供QOS管理功能,使得使用者可以通过页面或者telnet的方式对单个执行的负载能力和任务并发能力进行单独的设置!
5.调度引擎任务分发智能负载:调度引擎时刻保证与已加载的执行机保持者不间断的长连接,执行机不断向管理中心推送自身机器的负载能力和并发能力,管理中心在进行任务分发的时候除使用者单独指定对应机器的情况下,自主进行判断任务是否能够在选择的执行机上执行,从而大概率避免因为执行机器资源不足造成服务宕机等问题。在资源不足的情况下,管理中心能够将任务挂起等待,并发送告警等能力。
6.任务级资源隔离:调度引擎对接第三方虚拟化技术,用户可以通过任务配置选择任务可用的执行资源,任务提交后遵循用户配置在用户分配的资源上进行任务执行,避免执行资源不足造成任务大面积挂起和任务相互制约执行缓慢的问题。
7.执行机扩展外部插件:调度引擎包括注册中心,通过调度引擎中间件对外的扩展接口实现,用户可以自行扩展执行机实现,通过外部机器的方式注册为调度引擎中间件的执行机器,扩展执行引擎的执行种类和执行能力,用户可根据业务能力进行自定义的开发和优化。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (6)
1.一种调度引擎中间件数据处理方法,其特征在于,所述调度引擎中间件包括:负载均衡模块、网关Gateway模块,调度引擎管理中心模块、监控&管控单元、资源单元;其中该网关Gateway模块是为各个服务提供统一入口,由路由过滤和转发等功能组成,根据外部调用和内部任务管理集群负载情况进行选择性分发任务;调度引擎管理中心模块能够根据执行机的并发、负载、CPU使用率、内存使用率等性能指标进行最优选择,并将任务分发到对应的执行机;监控&管控单元用于对当前集群下的所有服务进行管控,通过实时心跳收集各服务的健康情况以及使用率指标;资源单元用于为调度引擎管理中心模块提供各种所需的资源,以使得调度引擎管理中心模块匹配服务器、支持容器化部署、支持大数据资源管理组件Yarn;
其中,调度引擎管理中心模块连接上游的使用方,并连接下游的各类执行资源;其中该调度引擎管理中心模块采用MySql数据库作为存储层,Redis作为加速层,整体架构采用了分布式的架构;其中所述调度引擎管理中心模块包括:任务扫描器、任务解析器、日志记录器、智能负载器、任务探测器、任务执行器;
调度引擎管理中心模块用于执行以下步骤:
负载均衡步骤:其中该执行机将当前的负载状态汇报到调度引擎管理中心模块的任务扫描器缓存,当调度引擎管理中心模块探测到任务已经可以执行时,将任务提交到任务解析器对任务进行解析,然后将解析后的任务提交到智能负载器;智能负载器根据任务执行器回报的情况智能选择任务执行器以及及到达任务执行器的路由,并同时记录执行日志;智能负载器将任务发送到任务执行器以对任务进行执行;在任务执行的过程中,任务探测器实时的探测每一个任务的执行情况并产生日志;当任务完成后,任务执行器将执行结果发送调度引擎管理中心模块,同时修改执行日志的结果;
任务流解析步骤:调度引擎管理中心模块接收到任务流数据;对任务流数据进行校验;如果校验不通过就直接结束本次调用,如果校验通过则进行环路验证以确定是否存在环路,如果存在环路就直接结束本次调用,如果不存在环路计算任务流下次的执行时间,然后将任务流入库,同时对任务流的最小粒度的任务拆分,以将任务拆分到最小执行单元;将拆分到最小执行单元后的任务记录到数据库中;
任务流拆解步骤:调度引擎管理中心模块接收到任务流数据;对任务流数据进行校验;如果校验不通过就直接结束本次调用,如果校验通过则进行环路验证以确定是否存在环路,如果存在环路就直接结束本次调用,如果不存在环路计算任务流下次的执行时间,然后将任务流入库,同时对任务流的最小粒度的任务拆分,以将任务拆分到最小执行单元;将拆分到最小执行单元后的任务记录到数据库中;
任务流转步骤:调度引擎管理中心模块会对当前使用的任务流进行任务流自检,当验证任务流处于即将执行的时候,会将该任务流进行预加载并生成运行计划图,该运行计划图中包含以下两项:运行流实例、待运行节点;调度引擎管理中心模块会同时对待运行节点进行自检,当发现存在待执行任务后,开始对待执行任务节点做可执行性校验,校验过程如下:验证节点的携带的参数的信息是否完善;验证该节点所在的运行计划图的状态,当为失败时直接置为失败;验证节点的上级依赖是否执行完毕和错误重试完毕;验证该节点是否是内置类型任务,内置类型的任务进行设置内置执行机资源服务;验证该节点所使用的服务器运行资源、并发要求等是否满足;
运行计划图关闭步骤:运行计划图中包含以下两项:运行流实例、待运行节点;在一个运行计划图内的全部原子任务全部执行完毕后,运行计划图的状态应由运行中更改为完成;其中完成可以分为成功或失败;调度引擎管理端将对所有运行中的运行计划图进行原子任务检查,根据运行计划图绑定值,查询所有关联该计划图的原子任务,当验证所有的原子任务全部执行完毕后,基于原子任务的状态进行修改运行计划图的最终运行状态,并将该运行计划图变更为完结状态;
任务错误重试步骤:调度引擎管理中心模块会对所有运行中的执行计划图中的已执行日志节点进行检查,将还有剩余错误重试的日志任务经过转换处理后重新加载为对应运行计划图的重试任务,并根据预先设定的重试频率进行重新执行,直至剩余重试次数为0;该任务错误重试流程用于遍历执行计划图中的所有子任务进行遍历以确定这些子任务是否还有剩余错误重试次数,如果还有则重新执行该错误的子任务。
2.根据权利要求1所述的调度引擎中间件数据处理方法,其特征在于,所述调度引擎管理中心模块对于任务的调用,是基于调度引擎管理中心模块的服务注册中心进行一系列的任务分发负载的;其中该使用方在进行执行机的扩展后,只需要将服务注册到调度引擎管理中心模块的服务注册中心,这样调度引擎管理中心模块就能够直接对自定义的执行机进行管控。
3.根据权利要求1所述的调度引擎中间件数据处理方法,其特征在于,所述任务调度引擎中间件还用于执行以下步骤:
并发控制步骤:任务调度引擎中间件为保证当前任务的顺利执行,除了需要及时对执行器的负载能力进行判断,同时还要根据执行机的负载能力进行并发限制;用户可用QoS管理服务进行执行机的并发管理,任务管理中心不断感知并发状态,当发现某一个执行机的并发已经达到极限,就将当前的执行机标记为不可用状态;当下一次汇报通知调度引擎管理中心模块之后,发现执行机的任务并发能力恢复,就重新将该执行机标记为可用,进行正常路由。执行机内部开放QoS端口,用户可在telnet端设置执行机的并发数量;当管理中心将任务提交到执行机后,将该任务机的当前可用并发数-1,开始调度;当任务机的并发度为0的时候,将任务重新打回到调度引擎管理中心模块,同时该执行机被调度引擎管理中心模块标记为不可用状态。
4.根据权利要求1所述的调度引擎中间件数据处理方法,其特征在于,还包括执行机,所述执行机执行以下步骤:
执行机上报自己可分配的资源和最高剩余并发数量以使得调度引擎管理中心模块根据执行机上报的参数和当前的任务选择对应的执行机执行任务;其中执行机至少上报以下参数:CPU核心数量,内存利用率,执行机任务执行线程池利用率,执行机QOS管理任务最大并发数量余量。
5.根据权利要求4所述的调度引擎中间件数据处理方法,其特征在于,所述执行机执行以下步骤:
当执行机接收到任务执行通知和任务执行详细信息后,将进行任务执行种类断定:
当验证为yarn类型的资源隔离任务,会借助Hadoop的yarn组件进行任务的封装,基于内置Yarn封装引擎将一个任务封装为Yarn规范的任务,并将任务根据分配的资源用量提交到yarn进行任务的执行,并实时监听任务的执行进度和执行日志;
当验证为常规任务的时候,执行机会基于任务类型自动选举对应的执行组件进行任务的执行,并实时反馈执行日志,和任务的存活状态、执行结果信息;
任务执行的同时,执行机会对该任务进行不间断的任务存活验证,并不断以长链接的形式向调度引擎管理中心进行任务续期,阻止任务超时报错。
6.根据权利要求4所述的调度引擎中间件数据处理方法,其特征在于,所述执行机还用于执行任务活性保证任务,包括:
当任务管理中心宕机后,执行机将会选举其他的服务通道来进行发送;当只有一个服务通道时,该执行机可以认定所有的管理中心都已经宕机,则将任务对应的结果都丢弃。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210712388.2A CN115658246A (zh) | 2022-06-22 | 2022-06-22 | 调度引擎中间件数据处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210712388.2A CN115658246A (zh) | 2022-06-22 | 2022-06-22 | 调度引擎中间件数据处理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115658246A true CN115658246A (zh) | 2023-01-31 |
Family
ID=85024091
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210712388.2A Pending CN115658246A (zh) | 2022-06-22 | 2022-06-22 | 调度引擎中间件数据处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115658246A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116048760A (zh) * | 2023-02-06 | 2023-05-02 | 杭州雷数科技有限公司 | 一种多源任务调度动态调度算法系统的实现方法 |
CN117271102A (zh) * | 2023-11-23 | 2023-12-22 | 山东省工业技术研究院 | 一种任务调度系统 |
-
2022
- 2022-06-22 CN CN202210712388.2A patent/CN115658246A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116048760A (zh) * | 2023-02-06 | 2023-05-02 | 杭州雷数科技有限公司 | 一种多源任务调度动态调度算法系统的实现方法 |
CN117271102A (zh) * | 2023-11-23 | 2023-12-22 | 山东省工业技术研究院 | 一种任务调度系统 |
CN117271102B (zh) * | 2023-11-23 | 2024-03-19 | 山东省工业技术研究院 | 一种任务调度系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2018203054B2 (en) | System of distributed software quality improvement | |
CN115658246A (zh) | 调度引擎中间件数据处理方法 | |
US11310113B2 (en) | Methods, systems and apparatus to improve cluster efficiency | |
CN103150249B (zh) | 一种自动化测试的方法和系统 | |
CN110287052A (zh) | 一种异常任务的根因任务确定方法及装置 | |
US8001429B2 (en) | Method and system for automated handling of errors in execution of system management flows consisting of system management tasks | |
US20070083588A1 (en) | Systems and methods for automated provisioning of managed computing resources | |
CN111400011B (zh) | 一种实时任务调度方法、系统、设备及可读存储介质 | |
CN109032945B (zh) | 一种软件可靠性工程集成环境框架设计方法 | |
CN111324599B (zh) | 一种区块链实验系统及管理方法 | |
US11822423B2 (en) | Structured software delivery and operation automation | |
CN114035925A (zh) | 一种工作流调度方法、装置、设备及可读存储介质 | |
US8819695B2 (en) | Controlling application landscapes | |
CN113157411B (zh) | 一种基于Celery的可靠可配置任务系统及装置 | |
CN116643950B (zh) | 一种基于FaaS的云原生应用自动化运维方法 | |
CN115056234A (zh) | 基于事件驱动和无限状态机的rpa控制器调度方法及系统 | |
CN113220436A (zh) | 一种分布式环境下的通用批量作业执行方法及装置 | |
CN113515293A (zh) | 一种管理DevOps工具链的方法和系统 | |
CN108874536A (zh) | 一种云服务的调度方法、装置、云服务执行器及存储介质 | |
Heilig et al. | Building clouds: An integrative approach for an automated deployment of elastic cloud services | |
CN115225475B (zh) | 一种用于服务器网络的自动化配置管理方法、系统及装置 | |
Li et al. | Model-based system configuration approach for Internetware | |
CN114896054A (zh) | 一种跨异构计算引擎的大数据任务调度方法、设备及介质 | |
TW201714136A (zh) | 具彈性化供裝流程之服務供裝系統 | |
Yau et al. | Proactive monitoring and control of workflow execution in adaptive service-based systems |
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 | ||
CB03 | Change of inventor or designer information |
Inventor after: HuangFu Kexing Inventor after: Fu Wenlei Inventor after: Gong Yiling Inventor before: HuangFu Kexing Inventor before: Fu Wenlei |
|
CB03 | Change of inventor or designer information |