CN116804941A - 批量无服务器作业调度系统及方法 - Google Patents
批量无服务器作业调度系统及方法 Download PDFInfo
- Publication number
- CN116804941A CN116804941A CN202310678914.2A CN202310678914A CN116804941A CN 116804941 A CN116804941 A CN 116804941A CN 202310678914 A CN202310678914 A CN 202310678914A CN 116804941 A CN116804941 A CN 116804941A
- Authority
- CN
- China
- Prior art keywords
- batch
- job
- server
- serverless
- container
- 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 OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/176—Support for shared access to files; File sharing support
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书涉及分布式批量调度技术领域,具体地公开了一种批量无服务器作业调度系统及方法,该系统包括:批量无服务器化调度服务器、分布式批量调度平台和容器云平台;分布式批量调度平台将批量作业写入批量注册中心;批量注册中心根据批量作业的执行结果更新批量作业的作业状态;批量无服务器化调度服务器监听批量注册中心中的批量作业;在监听到存在新增无服务器作业的情况下,向容器云平台发送资源申请请求;还可以在作业完成的情况下向容器云平台发送容器销毁请求;容器云平台响应于资源申请请求,在无服务器资源池中生成对应的无服务器容器;容器云平台还响应于容器销毁请求,销毁对应的无服务器容器。上述系统可以提高资源利用率。
Description
技术领域
本说明书涉及分布式批量调度技术领域,特别涉及一种批量无服务器作业调度系统及方法。
背景技术
现有的批量调度是基于批量编排流程,按照固定时间、前后依赖、逻辑分支等依次调度批量作业,读取处理数据,分发汇总数据,以便后续的联机或批量业务能够正常执行。同时在分布式转型后,大量应用的数据库采用分库分表设计,每个库都在单独处理数据后,还需要进行排序汇总等其他流程。应用需要再单独申请一套数据库专门处理这部分数据,以便满足在分片后数据集中处理的诉求。
按照批量处理模式的特点,应用系统的批量执行主要集中在晚上,有些应用批量作业甚至仅仅集中在临床的一两个小时,但作为批量执行的角色,必须申请固定的资源(如虚拟机、容器)来部署批量程序,这样会整体资源的利用率非常低。另外,在分布式转型后需要再单独申请专用或者复用某个分片数据库进行集中的汇总、排序、拆分等处理,同时存在性能容量不对称、浪费设备资源的问题。而且,高可用方面只能依赖此数据库的高可用机制,可能出现在极端情况下无法支撑汇总、排序、拆分批量作业的风险。
针对上述问题,目前尚未提出有效的解决方案。
发明内容
本说明书实施例提供了一种批量无服务器作业调度系统及方法,以解决现有技术中批量调度过程中资源利用率低的问题。
本说明书实施例提供了一种批量无服务器作业调度系统,包括:批量无服务器化调度服务器、分布式批量调度平台和容器云平台;
所述分布式批量调度平台用于将批量作业写入批量注册中心;所述批量注册中心还用于根据所述批量作业的执行结果更新所述批量作业的作业状态;
所述批量无服务器化调度服务器用于监听所述批量注册中心中的批量作业;在监听到存在新增批量作业的情况下,判断新增批量作业是否为无服务器作业;若是,则向容器云平台发送资源申请请求,所述资源申请请求中包括所述无服务器作业的标识信息;所述批量无服务器化调度服务器还用于读取所述批量注册中心中的无服务器作业的作业状态,并向所述容器云平台发送容器销毁请求,所述容器销毁请求中携带有作业状态为已完成的无服务器作业的标识信息;
所述容器云平台用于响应于所述资源申请请求,在无服务器资源池中生成所述无服务器作业对应的无服务器容器;所述无服务器容器用于监听并读取所述批量注册中心中对应的无服务器作业的作业信息,触发执行所述无服务器作业,并将执行结果发送至所述批量注册中心;所述容器云平台还用于响应于所述容器销毁请求,在所述无服务器资源池中销毁所述作业状态为已完成的无服务器作业对应的无服务器容器。
在一个实施例中,所述分布式批量调度平台用于读取批量作业的作业定义;根据所述批量作业的作业定义,生成批量实例信息;并根据调度逻辑将所述批量作业写入批量作业中心。
在一个实施例中,所述批量作业的作业信息中包括无服务器标识信息,所述批量无服务器化调度服务器根据所述批量作业的无服务器标识信息确定所述批量作业是否为无服务器作业。
在一个实施例中,所述批量作业的作业信息中还包括以下至少之一:批量作业ID、批量作业名称、批量执行器编组标识、批量作业计划执行时间、批量作业前项依赖作业ID、批量作业执行后触发作业ID、分片对应ID。
在一个实施例中,所述批量实例信息包括以下至少之一:作业实例ID、批量作业ID、批量实例名称、批量执行器编组标识、批量作业计划执行时间、无服务器容器资源ID、分片对应ID、无服务器标识信息和作业执行状态。
在一个实施例中,所述容器云平台中存储有无服务器资源定义表,所述无服务器资源定义表中保存有以下信息至少之一:批量作业对应的镜像ID、批量作业ID、资源规格、部署园区ID、超时时间和资源策略。
在一个实施例中,所述无服务器作业的标识信息为所述批量作业ID;
所述容器云平台用于根据所述无服务器作业的批量作业ID在所述无服务器资源定义表中查询所述无服务器作业对应的镜像ID和部署园区ID,以获取所述无服务器作业对应的批量镜像信息;所述容器云平台用于根据所述批量镜像信息在所述部署园区ID对应的无服务器资源池中生成所述无服务器作业对应的无服务器容器,并将所述无服务器容器的资源ID返回至所述批量无服务器化调度服务器,所述批量无服务器化调度服务器将所述无服务器作业对应的无服务器容器资源ID写入所述批量注册中心的作业信息中。
在一个实施例中,所述批量无服务器化调度服务器还用于在从所述批量注册中心读取的无服务器作业的作业状态为异常完成的情况下,向所述容器云平台发送容器销毁请求,所述容器销毁请求中携带有作业状态为异常完成的无服务器作业的标识信息;所述批量无服务器化调度服务器还用于判定作业状态为异常完成的无服务器作业的执行次数是否小于预设重设次数,若是,则向所述容器云平台发送资源申请请求,以重新执行所述作业状态为异常完成的无服务器作业;所述资源申请请求中包括作业状态为异常完成的无服务器作业的标识信息。
在一个实施例中,所述批量作业为批量文件集中处理作业;相应的,所述无服务器容器利用预先构建的文件处理构件访问分布式文件系统,以执行所述批量文件集中处理作业;所述文件处理构件用于执行以下操作之一:合并、排序、去重和拆分。
本说明书实施例还提供了一种批量无服务器作业调度方法,包括:
分布式批量调度平台将批量作业写入批量注册中心;
批量无服务器化调度服务器监听所述批量注册中心中的批量作业;在监听到存在新增批量作业的情况下,判断新增批量作业是否为无服务器作业;若是,则向容器云平台发送资源申请请求,所述资源申请请求中包括所述无服务器作业的标识信息;
所述容器云平台响应于所述资源申请请求,在无服务器资源池中生成所述无服务器作业对应的无服务器容器;
所述无服务器容器监听并读取所述批量注册中心中对应的无服务器作业的作业信息,触发执行所述无服务器作业,并将执行结果发送至所述批量注册中心;
所述批量注册中心根据所述执行结果更新所述无服务器作业的作业状态;
所述批量无服务器化调度服务器读取所述批量注册中心中的无服务器作业的作业状态,并向所述容器云平台发送容器销毁请求,所述容器销毁请求中携带有作业状态为已完成的无服务器作业的标识信息;
所述容器云平台响应于所述容器销毁请求,在所述无服务器资源池中销毁所述作业状态为已完成的无服务器作业对应的无服务器容器。
在本说明书实施例中,提供了一种批量无服务器作业调度系统,可以实现批量逻辑调度和容器资源调度的整合,实现批量资源按需调拨使用,可以极大提升资源利用率。通过在系统中设置批量无服务器化调度服务器,在支持原有形式批量调度以及无服务器化调度的情况下,可以支撑应用逐步过渡至新形态,对应用改造实施友好,开发成本低。进一步地,通过结合分布式文件系统,上述系统可以将原来需要更高规格数据库或单独数据库来集中处理数据的模式转变为在批量执行器中以文件形式处理,进一步降低了资源消耗。此外,依托文件处理构件、分布式文件系统以及批量无服务器化调度机制,可以提高在极端情况下,比如单独数据库处理集中数据场景下,主备数据库同时出现问题时,由分布式文件系统提供的多副本能力,可以支撑多园区多活,并在任意一个园区无服务器容器资源域内随时根据需要触发批量资源创建和执行调度动作,提升高可用性。
附图说明
此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,并不构成对本说明书的限定。在附图中:
图1示出了本说明书一实施例中的容器云平台进行资源对象创建、更新和删除的流程图;
图2示出了本说明书一实施例中的批量无服务器化调度服务器的功能示意图;
图3示出了本说明书一实施例中的批量无服务器化调度服务器的功能示意图;
图4示出了本说明书一实施例中的文件处理的流程示意图;
图5示出了本说明书一实施例中的文件处理的流程示意图;
图6示出了本说明书一实施例中的批量无服务器作业识别和分发流程示意图
图7示出了本说明书一实施例中的批量无服务器作业调度流程图;
图8示出了本说明书一实施例中的批量文件集中处理流程图;
图9示出了本说明书一实施例中的批量无服务器作业调度系统的结构示意图
图10示出了本说明书一实施例中批量无服务器作业调度方法的流程图。
具体实施方式
下面将参考若干示例性实施方式来描述本说明书的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本说明书,而并非以任何方式限制本说明书的范围。相反,提供这些实施方式是为了使本说明书公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域的技术人员知道,本说明书的实施方式可以实现为一种系统、装置设备、方法或计算机程序产品。因此,本说明书公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
本说明书实施例提供了一种批量无服务器作业调度系统。在一个场景示例中,批量无服务器作业调度系统主要基于容器资源调度以及批量作业调度,即容器云平台(PaaS,平台即服务)与分布式批量调度平台(Distributed Batch Framework,分布式批量框架)。容器云平台提供以Kubernetes为调度核心的容器(POD)资源供给、编排服务,应用可以通过设备申请管理流程预留PaaS容器资源,并在版本投产时,通过容器模板设置一次性生成对应容器。分布式批量平台则提供批量作业(例如,shell、java程序)的定时或条件触发调度,通过一定的业务逻辑排列组成有序的批量作业排程,支撑应用特定业务的日间、日终批量。
容器云平台提供的批量执行器计算资源可以按照应用在容器模板中定义的容器规格来提供,如4CPU、8G内存,可以按照常驻资源模式从投产开始,容器云资源池就提供对应规格容器。容器云平台同时提供无服务器计算能力,可以实现容器资源从1到0的调度模式,可以支持在选定条件下释放此前申请的容器资源,当有需要时再重新调度申请新资源创建容器。
请参考图1,示出了容器云平台进行资源对象创建、更新和删除的流程图。如图1所示,核心控制器处理请求:扩缩目标策略为PaaS弹性规则的资源对象,核心控制器接收规则资源对象(弹性策略)的操作命令。当删除弹性策略时,容器副本数将恢复至部署时资源默认的容器副本数。当创建规则资源对象(弹性策略)时,创建弹性策略、通用容器水平缩容指令(后续的伸缩通过Kubernetes控制容器资源的弹性伸缩)。同时启动一个循环的扩缩容触发器协程,该协程不断地去检测扩缩容触发器是否为激活态active。循环监听扩缩容触发器事件源:触发器循环监听外部事件源,根据active状态,更新副本数从0→1或者1→0的操作(对于当前副本数大于0且active为true情况,将由通用容器水平缩容机制接管进行扩缩容),并将事件源中获取到的指标传递给指标适配器组件。处理指标、通用容器水平缩容:指标适配器接收扩缩容触发器传递过来的指标,将指标转成Kubernetes识别的格式,传递给通用容器水平缩容机制,最终实现容器资源扩缩容。
因批量作业整体的目标是读取导入文件,加工数据然后到出结果,通常是以文件形式与上下游业务系统交互,同时系统内不同分片数据库的数据归集和拆分也按照文件形式进行存储和加工数据。批量系统运转一般依赖于分布式文件系统的文件的共享能力,可支撑应用进行跨园区的文件共享,支撑跨园区的高可用双活等。
现有技术中的批量调度流程中无法利用容器云平台提供的无服务器计算能力,分布式批量调度机制无法与容器云平台中的Kubernetes进行任何交互,仅能调度批量作业,触发业务批量执行,当批量执行完毕后,无法通知容器云平台云回收容器资源,也无法在后续批量需要再次申请容器资源重新部署批量执行器执行批量程序。
本说明书实施例中提供了一种批量无服务器作业调度系统,该系统中可以包括批量无服务器化调度服务器,批量无服务器化调度服务器可以确定并识别出批量作业执行开始和结束,并可以根据作业状态,生成容器云平台中的Kubernetes能够识别的扩缩容请求,则可以实现批量作业执行结果和状态来触发容器云平台的容器创建和销毁,实现按照批量具体的执行时间来使用服务器资源,可以大幅提升资源利用率。
批量无服务器化调度服务器可以根据批量作业执行状态生成容器扩容规则资源对象(弹性策略),在批量作业完成时,生成缩容为0的策略;又当需要调度批量时,生成
考虑到仍然有大量存量批量作业或者批量执行时间很长的特殊作业,需要同时考虑批量作业在普通容器和无服务器容器上执行的差别,因此要需要实现上述目标,需要实现以下功能。
首先,可以在原有批量作业定义基础上增加无服务器标识,以便区别处理。批量作业的作业信息所包含的信息如下表1所示。
表1
其次,可以通过批量无服务器化调度服务器,统筹调度资源和作业,作为核心模块按照资源预制、批量开始、批量结束、资源回收的顺序触发作业。
批量无服务器化调度服务器可以根据批量作业执行状态生成容器扩容规则资源对象(弹性策略),在批量作业完成时,生成缩容为0的策略;又当需要调度批量时,生成扩容至最小副本数的扩容策略,进而由分布式批量调度模块发起批量作业调度。
请参考图2,示出了本说明书实施例中的批量无服务器化调度服务器的功能示意图。如图2所示,批量无服务器化调度服务器可以从批量注册中心读取批量作业执行状态,在批量作业执行状态为结束的情况下,生成缩容为0的资源规则对象(批量容器对应的扩缩容策略,即,将批量执行器的副本数设置为0的策略)。批量无服务器化调度服务器可以响应于批量作业调度指令,生成扩容为最小副本数的资源规则对象(扩缩容策略,将批量执行器的副本数设置为最小副本数)。批量无服务器化调度服务器可以将资源规则对象发送至容器云平台。容器云平台在接收到资源规则对象之后,可以触发扩缩容操作,实现PaaS容器集群的扩缩容。
再次,可以统筹考虑资源异常、批量作业异常的处理,防止出现因资源、逻辑在不同体系下出现问题,相互干扰调度,导致资源无法正常回收,批量无法正常调度的问题。
请参考图3,示出了本说明书实施例中的批量无服务器化调度服务器的功能示意图。如图3所示,批量无服务器化调度服务器可以从批量注册中心读取批量作业执行状态。在批量作业执行状态为异常的情况下,批量无服务器化调度服务器可以按照批量重试次数设置,首先触发回收资源策略,即通知容器云平台将容器副本数缩减为0。同时,批量无服务器化调度服务器重新启动该批量作业对应的资源调度流程。在资源申请之后,可以再次执行该批量作业,直至完成该批量作业或者重试次数达到预设次数。
在批量作业为批量文件处理作业的情况下,可以使用分布式文件系统以及专用的文件处理构件支撑每个分片数据库的数据的分发、汇总、排序、去重等。请参考图4和图5,示出了本说明书实施例中的文件处理的流程示意图。如图4所示,可以对文件进行拆分和去重。如图5所示,可以对文件进行合并和去重。
请继续参考图6,示出了批量无服务器作业识别和分发流程示意图。批量作业需要显性标识出是否为无服务器作业,同时增加批量作业实例表记录批量作业实例与无服务器容器的对应关系,状态等信息,如上面的表1所示。无服务器作业实例信息所包含的信息如下面对表2所示。
表2
如图6所示,批量作业在部署后,由分布式批量调度平台(即,批量调度系统)可以按照作业定义,开始初始化实例表,之后根据调度逻辑、时间等统一在批量注册中心写入需要执行的批量作业信息。
另外,容器云平台的无服务器计算需要事先将应用批量作业所对应的镜像信息保存在对应批量无服务器化资源定义表中。无服务器资源定义表中所包含的信息如下面的表3所示。
表3
| 镜像ID | 作业定义ID | 资源规格 | 部署园区 | 超时时间 | 资源策略 |
| vchar(20) | vchar(200) | vchar(20) | vchar(100) | vchar(10) | vchar(20) |
请参考图7,示出了批量无服务器作业调度流程图。如图7所示,应用拥有与其数据库分片对等的批量执行器数量或者其他满足该应用高可用要求的数量,批量无服务器化调度服务器监听批量注册中心中的批量作业实例信息,一旦出现新增批量作业首先判断是否为无服务器作业,如是则继续读取作业信息,并同时向容器云平台申请无服务器计算资源,同步将批量作业ID信息告知容器云平台,容器云平台根据批量作业ID,获取对应作业镜像,并按照约定好的规格要求在指定园区生成对应容器,如果出现资源申请过程中出现超时、错误等情况,则按照资源策略,重新尝试申请资源,或直接报错。批量无服务器化调度服务器通过集成批量调度协议解析能力,以及容器云平台的资源弹性策略生成能力,即可实现无服务器容器结合批量作业执行状态进行弹性伸缩。
当批量无服务器化调度服务器触发批量容器资源调度,容器资源部署就位后,无服务器容器开始监听并读取批量注册中心相关作业信息(作业状态为待执行,即作业初始化后的状态),并根据对应资源ID进行筛选,接着按照原批量流程触发批量作业,执行容器中已经存在的批量处理逻辑,如读取数据库、业务处理、加工文件等。当作业执行完毕后,无服务器容器的批量执行器获取对应状态,如批量返回成功,则更新批量注册中心作业状态为完成,如果是失败,则按照原批量作业异常处理策略安排重试或直接报警,至此批量作业流程结束,并由容器云平台回收资源。
请参考图8,示出了本说明书实施例中的批量文件集中处理流程图。在分布式体系下业务仍然需要对数据进行拆分、汇总、排序等处理,但在单片数据库下,数据不完整的问题会对数据处理产生相当大的困扰。通过处理逻辑,相关数据处理功能均单独剥离形成文件处理工具jar包组件,应用利用批量文件处理工具并统一通过访问分布式文件系统实现所有批量执行器的数据共享。无论数据处理至哪一步,某单一批量执行器出现问题,都可以快速通过容器云平台的无服务器模块快速申请新的容器资源,并执行批量作业。在此种模式下,需要构建通用的文件处理模块,支撑文件的拆分、汇总、排序等功能,如下面的表4所示。
表4
本说明书实施例中的批量无服务器作业调度系统,可以结合现有容器云、批量作业调度、文件访问处理技术,实现了批量作业逻辑调度与批量容器资源调度的融合,极大的减少资源浪费。同时利用分布式文件共享访问能力和公共文件处理构件,解决分布式体系下应用系统集中处理数据的高可用痛点。通过上述方案,可以实现批量逻辑调度和容器资源调度整合,实现批量资源按需调拨使用,极大提升资源利用率。此外,通过批量无服务器化调度服务器化设计,整体系统支持原有形式批量调度以及无服务器化调度,可以支撑应用逐步过渡至新形态,对应用改造实施友好,开发成本低。再次,通过结合分布式文件系统,可以将原来需要更高规格数据库或单独数据库来集中处理数据的模式转变为在批量执行器中以文件形式处理,进一步降低了资源消耗。上述实施例中的系统,依托文件处理构件、分布式文件系统以及批量无服务器化调度机制,可以提高在极端情况下,比如单独数据库处理集中数据场景下,主备数据库同时出现问题时,由分布式文件系统提供的多副本能力,可以支撑多园区多活,并在任意一个园区无服务器容器资源域内随时根据需要触发批量资源创建和执行调度动作,提升高可用性。
基于上述内容,本说明书实施例提供了一种批量无服务器作业调度系统。请参考图9,示出了本说明书一实施例中批量无服务器作业调度系统的结构示意图。如图9所示,批量无服务器作业调度系统90可以包括:分布式批量调度平台901、批量无服务器化调度服务器902和容器云平台903。
分布式批量调度平台901可以用于将批量作业写入批量注册中心。批量注册中心中可以注册有批量作业的作业信息。批量注册中心还可以用于根据批量作业的执行结果更新批量作业的作业状态。在一个实施例中,作业状态可以包括:待执行、执行中、执行完成。执行完成可以包括:正常完成和异常完成。
在本说明书一些实施例中,分布式批量调度平台901可以用于读取批量作业的作业定义;根据批量作业的作业定义,生成批量实例信息;并根据调度逻辑将批量作业写入批量作业中心。
批量无服务器化调度服务器902可以用于监听批量注册中心中的批量作业。在监听到存在新增批量作业的情况下,批量无服务器化调度服务器902判断新增批量作业是否为无服务器作业。若是,则向容器云平台903发送资源申请请求。其中,资源申请请求中包括无服务器作业的标识信息。
批量无服务器化调度服务器902还可以用于读取批量注册中心中的无服务器作业的作业状态,并向容器云平台903发送容器销毁请求。其中,容器销毁请求中携带有作业状态为已完成的无服务器作业的标识信息。
容器云平台903可以用于响应于资源申请请求,在无服务器资源池中生成无服务器作业对应的无服务器容器。无服务器容器可以用于监听并读取批量注册中心中对应的无服务器作业的作业信息,触发执行无服务器作业,并将执行结果发送至批量注册中心。
容器云平台903还可以用于响应于容器销毁请求,在无服务器资源池中销毁作业状态为已完成的无服务器作业对应的无服务器容器。
上述实施例中的系统,可以实现批量逻辑调度和容器资源调度的整合,实现批量资源按需调拨使用,可以极大提升资源利用率。通过在系统中设置批量无服务器化调度服务器,在支持原有形式批量调度以及无服务器化调度的情况下,可以支撑应用逐步过渡至新形态,对应用改造实施友好,开发成本低。
在本说明书一些实施例中,批量作业的作业信息中可以包括无服务器标识信息,批量无服务器化调度服务器可以根据批量作业的无服务器标识信息确定批量作业是否为无服务器作业。例如,在无服务器标识信息为1时,表明该批量作业为无服务器作业,在无服务器标识信息为0时,表明该批量作业不是无服务器作业。
在本说明书一些实施例中,批量作业的作业信息中还可以包括以下至少之一:批量作业ID、批量作业名称、批量执行器编组标识、批量作业计划执行时间、批量作业前项依赖作业ID、批量作业执行后触发作业ID、分片对应ID。批量作业ID即为批量作业的标识信息。批量作业名称即批量作业的名称。批量执行器编组标识用于标识执行该批量作业的批量执行器编组。批量作业前项依赖作业ID和批量作业执行后触发作业ID可以分别表示批量作业的前项依赖的批量作业的标识和批量作业执行完成后触发的批量作业的标识。分片对应ID用于表明分布式文件系统中对应的文件分片的标识。
在本说明书一些实施例中,批量实例信息包括以下至少之一:作业实例ID、批量作业ID、批量实例名称、批量执行器编组标识、批量作业计划执行时间、无服务器容器资源ID、分片对应ID、无服务器标识信息和作业执行状态。分布式批量调度平台可以根据批量作业的作业信息生成批量作业实例。批量作业实例对应的批量实例信息可以包括作业实例ID,即批量作业实例的标识信息。无服务器容器资源ID即执行该批量作业的无服务器容器的标识信息。
在本说明书一些实施例中,容器云平台中可以存储有无服务器资源定义表,无服务器资源定义表中可以保存有以下信息至少之一:批量作业对应的镜像ID、批量作业ID、资源规格、部署园区ID、超时时间和资源策略。其中,批量作业对应的镜像ID为批量作业对应的镜像信息的标识。园区ID为该批量作业对应的无服务器容器所在的园区的标识。资源规格为无服务器容器对应的资源规格信息。超时时间可以指批量作业在历史运行下的平均运行时长。资源策略可以指在出现批量执行异常时,无服务器执行器容器资源再次申请的策略,或者可以指报错后资源规格的修正策略。
在本说明书一些实施例中,容器云平台可以用于根据无服务器作业的批量作业ID在无服务器资源定义表中查询无服务器作业对应的镜像ID和部署园区ID,以获取无服务器作业对应的批量镜像信息。容器云平台可以用于根据批量镜像信息在部署园区ID对应的无服务器资源池中生成无服务器作业对应的无服务器容器,并将无服务器容器的资源ID返回至批量无服务器化调度服务器。批量无服务器化调度服务器可以将无服务器作业对应的无服务器容器资源ID写入批量注册中心的作业信息中。
在本说明书一些实施例中,批量无服务器化调度服务器还可以用于在从批量注册中心读取的无服务器作业的作业状态为异常完成的情况下,向容器云平台发送容器销毁请求,容器销毁请求中携带有作业状态为异常完成的无服务器作业的标识信息。批量无服务器化调度服务器还可以用于判定作业状态为异常完成的无服务器作业的执行次数是否小于预设重设次数。若是,则批量无服务器化调度服务器向容器云平台发送资源申请请求,以重新执行作业状态为异常完成的无服务器作业。资源申请请求中包括作业状态为异常完成的无服务器作业的标识信息。
在本说明书一些实施例中,批量作业可以为批量文件集中处理作业。相应的,无服务器容器可以利用预先构建的文件处理构件访问分布式文件系统,以执行批量文件集中处理作业。文件处理构件可以用于执行以下操作之一:合并、排序、去重和拆分。
图10示出了本说明书一实施例中批量无服务器作业调度方法的流程图。虽然本说明书提供了如下述实施例或附图所示的方法操作步骤或装置结构,但基于常规或者无需创造性的劳动在所述方法或装置中可以包括更多或者更少的操作步骤或模块单元。在逻辑性上不存在必要因果关系的步骤或结构中,这些步骤的执行顺序或装置的模块结构不限于本说明书实施例描述及附图所示的执行顺序或模块结构。所述的方法或模块结构的在实际中的装置或终端产品应用时,可以按照实施例或者附图所示的方法或模块结构连接进行顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至分布式处理环境)。
具体地,如图10所示,本说明书一种实施例提供的批量无服务器作业调度方法可以包括以下步骤。
步骤S1001,分布式批量调度平台将批量作业写入批量注册中心。
步骤S1002,批量无服务器化调度服务器监听所述批量注册中心中的批量作业;在监听到存在新增批量作业的情况下,判断新增批量作业是否为无服务器作业;若是,则向容器云平台发送资源申请请求,所述资源申请请求中包括所述无服务器作业的标识信息。
步骤S1003,所述容器云平台响应于所述资源申请请求,在无服务器资源池中生成所述无服务器作业对应的无服务器容器。
步骤S1004,所述无服务器容器监听并读取所述批量注册中心中对应的无服务器作业的作业信息,触发执行所述无服务器作业,并将执行结果发送至所述批量注册中心。
步骤S1005,所述批量注册中心根据所述执行结果更新所述无服务器作业的作业状态。
步骤S1006,所述批量无服务器化调度服务器读取所述批量注册中心中的无服务器作业的作业状态,并向所述容器云平台发送容器销毁请求,所述容器销毁请求中携带有作业状态为已完成的无服务器作业的标识信息。
步骤S1007,所述容器云平台响应于所述容器销毁请求,在所述无服务器资源池中销毁所述作业状态为已完成的无服务器作业对应的无服务器容器。
上述实施例中的方法,可以实现批量逻辑调度和容器资源调度的整合,实现批量资源按需调拨使用,可以极大提升资源利用率。通过在系统中设置批量无服务器化调度服务器,在支持原有形式批量调度以及无服务器化调度的情况下,可以支撑应用逐步过渡至新形态,对应用改造实施友好,开发成本低。进一步地,通过结合分布式文件系统,上述系统可以将原来需要更高规格数据库或单独数据库来集中处理数据的模式转变为在批量执行器中以文件形式处理,进一步降低了资源消耗。此外,依托文件处理构件、分布式文件系统以及批量无服务器化调度机制,可以提高在极端情况下,比如单独数据库处理集中数据场景下,主备数据库同时出现问题时,由分布式文件系统提供的多副本能力,可以支撑多园区多活,并在任意一个园区无服务器容器资源域内随时根据需要触发批量资源创建和执行调度动作,提升高可用性。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。具体的可以参照前述相关处理相关实施例的描述,在此不做一一赘述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
从以上的描述中,可以看出,本说明书实施例实现了如下技术效果:可以实现批量逻辑调度和容器资源调度的整合,实现批量资源按需调拨使用,可以极大提升资源利用率。通过在系统中设置批量无服务器化调度服务器,在支持原有形式批量调度以及无服务器化调度的情况下,可以支撑应用逐步过渡至新形态,对应用改造实施友好,开发成本低。进一步地,通过结合分布式文件系统,上述系统可以将原来需要更高规格数据库或单独数据库来集中处理数据的模式转变为在批量执行器中以文件形式处理,进一步降低了资源消耗。此外,依托文件处理构件、分布式文件系统以及批量无服务器化调度机制,可以提高在极端情况下,比如单独数据库处理集中数据场景下,主备数据库同时出现问题时,由分布式文件系统提供的多副本能力,可以支撑多园区多活,并在任意一个园区无服务器容器资源域内随时根据需要触发批量资源创建和执行调度动作,提升高可用性。
显然,本领域的技术人员应该明白,上述的本说明书实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本说明书实施例不限制于任何特定的硬件和软件结合。
应该理解,以上描述是为了进行图示说明而不是为了进行限制。通过阅读上述描述,在所提供的示例之外的许多实施方式和许多应用对本领域技术人员来说都将是显而易见的。因此,本说明书的范围不应该参照上述描述来确定,而是应该参照前述权利要求以及这些权利要求所拥有的等价物的全部范围来确定。
以上所述仅为本说明书的优选实施例而已,并不用于限制本说明书,对于本领域的技术人员来说,本说明书实施例可以有各种更改和变化。凡在本说明书的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本说明书的保护范围之内。
Claims (10)
1.一种批量无服务器作业调度系统,其特征在于,包括:批量无服务器化调度服务器、分布式批量调度平台和容器云平台;
所述分布式批量调度平台用于将批量作业写入批量注册中心;所述批量注册中心还用于根据所述批量作业的执行结果更新所述批量作业的作业状态;
所述批量无服务器化调度服务器用于监听所述批量注册中心中的批量作业;在监听到存在新增批量作业的情况下,判断新增批量作业是否为无服务器作业;若是,则向容器云平台发送资源申请请求,所述资源申请请求中包括所述无服务器作业的标识信息;所述批量无服务器化调度服务器还用于读取所述批量注册中心中的无服务器作业的作业状态,并向所述容器云平台发送容器销毁请求,所述容器销毁请求中携带有作业状态为已完成的无服务器作业的标识信息;
所述容器云平台用于响应于所述资源申请请求,在无服务器资源池中生成所述无服务器作业对应的无服务器容器;所述无服务器容器用于监听并读取所述批量注册中心中对应的无服务器作业的作业信息,触发执行所述无服务器作业,并将执行结果发送至所述批量注册中心;所述容器云平台还用于响应于所述容器销毁请求,在所述无服务器资源池中销毁所述作业状态为已完成的无服务器作业对应的无服务器容器。
2.根据权利要求1所述的批量无服务器作业调度系统,其特征在于,所述分布式批量调度平台用于读取批量作业的作业定义;根据所述批量作业的作业定义,生成批量实例信息;并根据调度逻辑将所述批量作业写入批量作业中心。
3.根据权利要求1所述的批量无服务器作业调度系统,其特征在于,所述批量作业的作业信息中包括无服务器标识信息,所述批量无服务器化调度服务器根据所述批量作业的无服务器标识信息确定所述批量作业是否为无服务器作业。
4.根据权利要求3所述的批量无服务器作业调度系统,其特征在于,所述批量作业的作业信息中还包括以下至少之一:批量作业ID、批量作业名称、批量执行器编组标识、批量作业计划执行时间、批量作业前项依赖作业ID、批量作业执行后触发作业ID、分片对应ID。
5.根据权利要求2所述的批量无服务器作业调度系统,其特征在于,所述批量实例信息包括以下至少之一:作业实例ID、批量作业ID、批量实例名称、批量执行器编组标识、批量作业计划执行时间、无服务器容器资源ID、分片对应ID、无服务器标识信息和作业执行状态。
6.根据权利要求1所述的批量无服务器作业调度系统,其特征在于,所述容器云平台中存储有无服务器资源定义表,所述无服务器资源定义表中保存有以下信息至少之一:批量作业对应的镜像ID、批量作业ID、资源规格、部署园区ID、超时时间和资源策略。
7.根据权利要求6所述的批量无服务器作业调度系统,其特征在于,所述无服务器作业的标识信息为所述批量作业ID;
所述容器云平台用于根据所述无服务器作业的批量作业ID在所述无服务器资源定义表中查询所述无服务器作业对应的镜像ID和部署园区ID,以获取所述无服务器作业对应的批量镜像信息;所述容器云平台用于根据所述批量镜像信息在所述部署园区ID对应的无服务器资源池中生成所述无服务器作业对应的无服务器容器,并将所述无服务器容器的资源ID返回至所述批量无服务器化调度服务器,所述批量无服务器化调度服务器将所述无服务器作业对应的无服务器容器资源ID写入所述批量注册中心的作业信息中。
8.根据权利要求1所述的批量无服务器作业调度系统,其特征在于,所述批量无服务器化调度服务器还用于在从所述批量注册中心读取的无服务器作业的作业状态为异常完成的情况下,向所述容器云平台发送容器销毁请求,所述容器销毁请求中携带有作业状态为异常完成的无服务器作业的标识信息;所述批量无服务器化调度服务器还用于判定作业状态为异常完成的无服务器作业的执行次数是否小于预设重设次数,若是,则向所述容器云平台发送资源申请请求,以重新执行所述作业状态为异常完成的无服务器作业;所述资源申请请求中包括作业状态为异常完成的无服务器作业的标识信息。
9.根据权利要求1所述的批量无服务器作业调度系统,其特征在于,所述批量作业为批量文件集中处理作业;相应的,所述无服务器容器利用预先构建的文件处理构件访问分布式文件系统,以执行所述批量文件集中处理作业;所述文件处理构件用于执行以下操作之一:合并、排序、去重和拆分。
10.一种批量无服务器作业调度方法,其特征在于,包括:
分布式批量调度平台将批量作业写入批量注册中心;
批量无服务器化调度服务器监听所述批量注册中心中的批量作业;在监听到存在新增批量作业的情况下,判断新增批量作业是否为无服务器作业;若是,则向容器云平台发送资源申请请求,所述资源申请请求中包括所述无服务器作业的标识信息;
所述容器云平台响应于所述资源申请请求,在无服务器资源池中生成所述无服务器作业对应的无服务器容器;
所述无服务器容器监听并读取所述批量注册中心中对应的无服务器作业的作业信息,触发执行所述无服务器作业,并将执行结果发送至所述批量注册中心;
所述批量注册中心根据所述执行结果更新所述无服务器作业的作业状态;
所述批量无服务器化调度服务器读取所述批量注册中心中的无服务器作业的作业状态,并向所述容器云平台发送容器销毁请求,所述容器销毁请求中携带有作业状态为已完成的无服务器作业的标识信息;
所述容器云平台响应于所述容器销毁请求,在所述无服务器资源池中销毁所述作业状态为已完成的无服务器作业对应的无服务器容器。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202310678914.2A CN116804941A (zh) | 2023-06-08 | 2023-06-08 | 批量无服务器作业调度系统及方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202310678914.2A CN116804941A (zh) | 2023-06-08 | 2023-06-08 | 批量无服务器作业调度系统及方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN116804941A true CN116804941A (zh) | 2023-09-26 |
Family
ID=88079249
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202310678914.2A Pending CN116804941A (zh) | 2023-06-08 | 2023-06-08 | 批量无服务器作业调度系统及方法 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN116804941A (zh) |
-
2023
- 2023-06-08 CN CN202310678914.2A patent/CN116804941A/zh active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11636015B2 (en) | Storage system and control software deployment method | |
| US8307363B2 (en) | Virtual machine system, restarting method of virtual machine and system | |
| US9886260B2 (en) | Managing software version upgrades in a multiple computer system environment | |
| CN102782656B (zh) | 管理应用程序可用性的系统和方法 | |
| US8074222B2 (en) | Job management device, cluster system, and computer-readable medium storing job management program | |
| US8676762B2 (en) | Efficient backup and restore of a cluster aware virtual input/output server (VIOS) within a VIOS cluster | |
| US8392378B2 (en) | Efficient backup and restore of virtual input/output server (VIOS) cluster | |
| US11803412B2 (en) | Containerized application management system and management method | |
| JP4204769B2 (ja) | フェールオーバを処理するシステムおよび方法 | |
| US9398092B1 (en) | Federated restore of cluster shared volumes | |
| CN112035293A (zh) | 虚拟机集群备份 | |
| CN102981931A (zh) | 虚拟机备份方法及装置 | |
| US11079960B2 (en) | Object storage system with priority meta object replication | |
| JP6520448B2 (ja) | 情報処理システム、情報処理装置及び情報処理装置制御方法 | |
| WO2016018262A1 (en) | Storage transactions | |
| WO2022227719A1 (zh) | 数据备份方法、系统及相关设备 | |
| CN112243030A (zh) | 分布式存储系统的数据同步方法、装置、设备及介质 | |
| CN113835930B (zh) | 一种基于云平台的缓存服务恢复方法、系统和装置 | |
| EP3811227B1 (en) | Methods, devices and systems for non-disruptive upgrades to a distributed coordination engine in a distributed computing environment | |
| CN116804941A (zh) | 批量无服务器作业调度系统及方法 | |
| US20210248108A1 (en) | Asynchronous data synchronization and reconciliation | |
| CN113934575B (zh) | 一种基于分布式拷贝的大数据备份系统及方法 | |
| CN115378800A (zh) | 无服务器架构分布式容错系统、方法、装置、设备及介质 | |
| CN114064349A (zh) | 一种数据处理方法、装置、设备和存储介质 | |
| US20250370794A1 (en) | Job scheduling for a data management systems based on job groups |
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 |