CN115454450B - 一种针对数据作业的资源管理的方法、装置、电子设备和存储介质 - Google Patents
一种针对数据作业的资源管理的方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN115454450B CN115454450B CN202211124572.1A CN202211124572A CN115454450B CN 115454450 B CN115454450 B CN 115454450B CN 202211124572 A CN202211124572 A CN 202211124572A CN 115454450 B CN115454450 B CN 115454450B
- Authority
- CN
- China
- Prior art keywords
- job
- information
- target data
- description information
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000007726 management method Methods 0.000 claims description 164
- 238000012545 processing Methods 0.000 claims description 49
- 238000004590 computer program Methods 0.000 claims description 16
- 238000012544 monitoring process Methods 0.000 claims description 9
- 230000004044 response Effects 0.000 claims description 9
- 238000013468 resource allocation Methods 0.000 claims description 6
- 239000000523 sample Substances 0.000 claims 1
- 230000006870 function Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 16
- 238000004364 calculation method Methods 0.000 description 8
- 238000013507 mapping Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 230000002829 reductive effect Effects 0.000 description 5
- 230000006978 adaptation Effects 0.000 description 4
- 238000004140 cleaning Methods 0.000 description 4
- 238000010801 machine learning Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 210000001503 joint Anatomy 0.000 description 1
- 230000002147 killing effect Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- ZLIBICFPKPWGIZ-UHFFFAOYSA-N pyrimethanil Chemical compound CC1=CC(C)=NC(NC=2C=CC=CC=2)=N1 ZLIBICFPKPWGIZ-UHFFFAOYSA-N 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- CCEKAJIANROZEO-UHFFFAOYSA-N sulfluramid Chemical group CCNS(=O)(=O)C(F)(F)C(F)(F)C(F)(F)C(F)(F)C(F)(F)C(F)(F)C(F)(F)C(F)(F)F CCEKAJIANROZEO-UHFFFAOYSA-N 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- 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)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种针对数据作业的资源管理的方法,包括:接收针对目标数据作业的作业描述信息,作业描述信息包括第一作业描述信息和第二作业描述信息;第一作业描述信息用于以符合第一表达规则的方式描述与目标数据作业有关的配置信息;第二作业描述信息用于以符合第二表达规则的方式描述与目标数据作业有关的执行状态信息;基于第一作业描述信息创建作业管理模块,作业管理模块用于创建和管理作业执行模块;基于所述目标数据作业的执行状态更新所述目标数据作业的所述第二作业描述信息。通过两级管理实现对数据作业的资源管理,并通过统一形式来兼容多种计算框架。
Description
技术领域
本公开涉及大数据和云服务技术领域,尤其涉及一种针对数据作业的资源管理的方法、装置、电子设备和存储介质。
背景技术
随着计算机技术和互联网技术的发展,在网络中以及计算机系统中积累了大量的信息和数据,针对数据处理相关的技术也得到了广泛的发展和应用,其中包括较为知名的Spark大数据计算引擎和Flink大数据计算引擎,然而现有的大数据计算引擎部署方式存在很多问题,例如部署方式复杂容易出错、对作业管理能力有限且无法灵活调整,此外,在资源管理平台针对不同的大数据计算引擎进行的部署彼此不同,相互独立,缺乏兼容和适配性。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种针对数据作业的资源管理的方法、装置、电子设备和存储介质。
根据本公开的一方面,提供了一种针对数据作业的资源管理的方法,所述方法包括:
接收针对目标数据作业的作业描述信息,所述作业描述信息包括第一作业描述信息和第二作业描述信息;第一作业描述信息用于以符合第一表达规则的方式描述与所述目标数据作业有关的配置信息;所述第二作业描述信息用于以符合第二表达规则的方式描述与所述目标数据作业有关的执行状态信息;
基于所述第一作业描述信息为所述目标数据作业创建作业管理模块,所述作业管理模块用于为所述目标数据作业创建作业执行模块和管理所述作业执行模块;
基于所述目标数据作业的执行状态更新所述目标数据作业的所述第二作业描述信息。
根据本公开的另一方面,提供了一种针对数据作业进行资源管理的装置,包括:
接收模块,用于接收针对目标数据作业的作业描述信息,所述作业描述信息包括第一作业描述信息和第二作业描述信息;第一作业描述信息用于以符合第一表达规则的方式描述与所述目标数据作业有关的配置信息;所述第二作业描述信息用于以符合第二表达规则的方式描述与所述目标数据作业有关的执行状态信息;
创建模块,用于基于所述第一作业描述信息为所述目标数据作业创建作业管理模块,所述作业管理模块为所述目标数据作业创建作业执行模块和管理所述作业执行模块;
更新模块,用于基于所述目标数据作业的执行状态更新所述目标数据作业的所述第二作业描述信息。
根据本公开的另一方面,提供了一种电子设备,其特征在于,包括:
至少一个处理器;
用于存储所述至少一个处理器可执行指令的存储器;
其中,所述至少一个处理器被配置为执行所述指令,以实现如权利要求1-8中任一项所述的方法。
根据本公开的另一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,当所述计算机程序由处理器执行时实现如上述任一项所述的方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如上述任一项所述方法。
本公开提出的针对数据作业的资源管理方法和装置,通过构建统一的作业描述信息能够实现对不同大数据处理框架兼容,有助于提升方法的可移植性和拓宽应用场景,可以支持多种框架的多种运行模式,降低与各种类型的大数据框架的适配难度,降低不同大数据框架的接入成本;根据作业描述信息创建作业管理模块,作业管理模块能够创建并执行作业执行模块,形成了数据作业的分级管理,能够通过赋予作业管理模块管理执行模块的能力,对作业的执行进行生命周期管理,同时,作业管理模块便于根据数据处理框架进行拓展从而针对一些复杂的管理机制的实施定制化方案。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为适用于本公开实施例的一种针对数据作业的资源管理方法的系统架构示意图;
图2为适用于本公开实施例的一种基于k8s部署的针对数据作业的资源管理方法的系统架构示意图;
图3为本公开实施例的一种针对数据作业的资源管理方法的流程图;
图4为本公开实施例的一种基于k8s部署大数据计算作业的方法中计算作业的状态流转示意图;
图5为本公开实施例的一种基于k8s部署的针对数据作业的资源管理方法的实施过程的第一和第二阶段示意图,其中图5(a)为第一阶段的实施过程;图5(b)为第二阶段的实施过程;
图6为本公开实施例的一种基于调度模块进行针对数据作业的资源管理方法的流程图;
图7为本公开实施例的一种针对数据作业的资源管理装置的结构框图;
图8为本公开实施例的一种电子设备的结构框图;以及
图9为本公开实施例的一种计算机系统的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
在介绍本公开实施例之前首先对本公开实施例中涉及到的相关名词作如下释义:
另一种资源协调者(Yet Another Resource Negotiator,Yarn)是一种资源管理器,可以为上层应用提供统一的资源管理和调度。在Yarn上包括两个重要模块,资源管理器(Resource Manager,RM)和应用程序主节点(Application Master,AM)。
Kubernetes(简称k8s)是一种用于自动部署、扩展和管理容器化(containerized)应用程序的开源系统,在应用容器引擎Docker(让开发者可以打包应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux(一种编程语言)机器上,也可以实现虚拟化)技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。
API Server,API服务器,应用程序接口服务器,资源操作的唯一入口,可以提供认证、授权、访问控制、API注册和发现等机制。
Operator,在k8s中的定义的一个模块,通常包含两个概念,分别是用于自定义资源的客户资源描述(Customer Resource Definition,CRD)和自定义控制器Controller。
作业管理器(Application Manager),是Controller中包括的子模块,可以用于监听数据作业的提交并管理其生命周期等。
作业主控模块(Application Master,AM),在k8s和Yarn中定义的一个虚拟控制模块,用于管理资源调度的最小单位pod或container。
pod,是K8s中基本的构建模块,也是最小的资源管理单元;一个pod可以包含一个或多个容器。
容器container,本质上是一个进程,是一个受到隔离和资源限制的进程。
k8s Native模式,通过Spak-submit命令直接向K8s的应用程序接口服务器APIServer提交,申请到资源之后启动Pod作为驱动器Driver和执行器Executor来执行作业。
Application,数据作业,在本公开中客户端向服务端提交的数据作业以统一格式的作业描述信息进行提交,因此这里Application也被用于指作业描述信息。
Spark,一般是指Apache Spark,是专为大规模数据处理而设计的快速通用的计算引擎。
Flink,一般是指Apache Flink,是开源流处理框架,核心是用Java和Scala编写的分布流数据流引擎。Flink以数据并行和流水线方式执行任意流数据程序。
Standalone模式,也叫做独立模式,是指自带完整的服务,可以单独部署到一个集群中,无序依赖任何其他资源管理系统。
Jobmanager,是flink中的主节点,负责整个集群的作业管理和资源管理
ConfigMap,用于为容器中的应用提供配置文件等信息,一般不存储涉密信息。
TaskManager相当于整个集群的从节点,负责具体的作业执行和对应作业在每个节点上的资源申请和管理。
目前,一些数据作业,尤其是大数据计算会基于不同的数据引擎架构实现,诸如大数据计算引擎Spark和Flink,用于实现批处理、流处理、交互式查询、机器学习等常见的数据处理场景。但大数据处理平台或计算引擎不具备资源管理的优势;为了利用现有的一些资源管理平台为大数据引擎提供资源管理功能,例如Yarn和k8s,可以考虑将大数据计算作业(或者描述为计算作业)部署到k8s资源管理系统。然而,现有的部署方案存在以下技术问题:有的方案对操作者要求高、管理复杂且容易出错;有的方案的作业管理能力有限并无法针对资源或部分流程进行灵活调整,导致可移植性较差。此外,不同框架的部署方案相互独立,提升了对周边生态和k8s本身的对接成本。
有鉴于此,本公开的实施例提供了一种针对数据作业的资源管理的方法,所述方法包括:
接收针对目标数据作业的作业描述信息,所述作业描述信息包括第一作业描述信息和第二作业描述信息;第一作业描述信息用于以符合第一表达规则的方式描述与所述目标数据作业有关的配置信息;所述第二作业描述信息用于以符合第二表达规则的方式描述与所述目标数据作业有关的执行状态信息;
基于所述第一作业描述信息为所述目标数据作业创建作业管理模块,所述作业管理模块用于为所述目标数据作业创建作业执行模块和管理所述作业执行模块;
基于所述目标数据作业的执行状态更新所述目标数据作业的所述第二作业描述信息。
在上述方案中,构建统一的作业描述信息能够实现对不同大数据处理框架兼容,有助于提升方法的可移植性和拓宽应用场景,可以支持多种框架的多种运行模式,降低与各种类型的大数据框架的适配难度,降低不同大数据框架的接入成本;根据作业描述信息创建作业管理模块,作业管理模块能够创建并执行作业执行模块,形成了数据作业的分级管理,能够通过赋予作业管理模块管理执行模块的能力,对作业的执行进行生命周期管理,同时,作业管理模块便于根据数据处理框架进行拓展从而针对一些复杂的管理机制的实施定制化方案。
在一些实施例中,上述资源管理方法可以运行在多种资源管理平台上,例如在Yarn平台中,或者在kubernetes(k8s)平台上。
在一些实施例中,第一作业描述信息是关于数据作业规格的规格描述信息,第二作业描述信息是关于作业状态的状态描述信息。
所述规格描述信息可以包括作业管理模块创建所需要的元数据信息、作业元数据信息和作业管理策略信息;所述状态描述信息可以包括作业状态信息、作业生命周期信息、当前作业管理模块信息、历史作业管理模块信息以及当前的资源分配和使用信息。
在一些实施例中,基于所述第一作业描述信息为所述目标数据作业创建作业管理模块的步骤可以由应用管理模块完成。
在一些实施例中,例如在Kubernetes系统中,应用管理模块可以为Operator或controller,作业管理模块可以为AM(Application Master),作业执行模块可以为pod。
在一些实施例中,例如在yarn系统中,应用管理模块可以为RM(ResourceManager),作业管理模块可以为AM(Application Master),作业执行模块可以为container。
基于应用管理模块和作业管理模块的两级管理架构,针对各种类型的大数据计算作业实现统一接入以及逐级管理,由应用管理模块管理进行作业管理模块的管理,再由作业管理模块管理内部的作业执行模块(例如在k8s中,所述作业执行模块可以为工作pod,在yarn中,所述作业执行模块可以为container)的生命周期,一方面能够有效管理和表达数据作业的相关状态,并根据处理请求定制个性化的作业重启策略;另一方面也能确保作业管理模块对作业的运行有充分掌控能力,可以按需调整资源使用。
以下针对适用于本公开的数据资源管理方法的系统架构示意图来描述相应的系统架构方式。
如图1所示,本公开的数据资源管理系统100主要包括请求端110,客户端120,服务端130,可选地,还可以包括信息查询端140和/或调度模块150。
请求端110,用于响应用户的请求而发起数据作业Application请求。
客户端120,用于接收来自请求端110的请求,向服务端130提交具有统一格式的作业描述信息Application。
服务端130,用于从客户端120接收Application,并基于该Application中针对目标数据作业进行资源管理调度。其中,需要注意的是,统一格式是指,对于不同类型数据计算引擎对应的客户端120,在其提交给服务端130的作业描述信息都采用统一的格式信息,而不仅仅是针对某个数据引擎的客户端的作业描述信息的格式统一。
图1中虚线框出的部分对应于服务端130,用以表明服务端130可以是部署于不同实体节点中的多个虚拟服务端,也可以是部署于在相同实体节点中的一个服务端。
服务端130可以包括控制模块131,查询模块132和应用接口模块。
在一些实施例中,数据资源管理系统100还包括用于执行数据处理的作业执行模块(图1中未示出)。作业执行模块可以被认为是组成服务端130的一部分,或者,基于调度和执行相互独立的角度,作业执行模块也可以被认为是独立于服务端130的部分。
控制模块131,用于根据作业描述信息,创建作业管理模块。在k8s中,控制模块131可以是controller中的应用管理模块Application Manager,或者,在yarn中,控制模块131可以是RM(Resource Manager)。
查询模块132,用于监听与数据作业有关的状态和调度资源,并将相应的变更信息同步到上层用户平台,例如可以通过信息查询端140进行输出。在k8s中,可以是历史查询服务器Application History Server。
应用接口模块133,用于在服务端130内部各模块之间以及服务端130与外部之间提供统一的信息交互接口,例如可以是应用接口服务器API Server。
信息查询端140,用于将查询模块132的信息呈现给用户或外部平台。
调度模块150,用于针对需要进行预设类型的资源调度的数据处理,提供符合预设类型的外部调度器。例如可以是批处理调度器,godel调度器或gro调度器。
图2为适用于本公开实施例的基于k8s部署的针对数据作业的资源管理方法的系统架构示意图。
参照图2所示,适用于本公开实施例的基于k8s部署的针对数据作业的资源管理方法的系统200包括:客户端220,基于k8s的资源管理和部署服务端230;可选地,该系统还可以包括外部查询端口240和批调度器250
客户端220和上述基于k8s的资源管理和部署服务端(后续简称k8s服务端)230可以实现为客户端-服务端(Client-Server,C-S)架构,以k8s服务端的角度而言,在图1中客户端220可以具体实现将接收到的来自请求端(图2中未示出)的数据作业请求以统一格式的作业描述信息提交至k8s服务端230。
在一些场景中,用户或一些应用平台基于电子设备向大数据作业提交端发起数据处理请求,诸如视频数据处理、文本数据处理、语音数据处理、机器学习模型训练等数据请求的场景。这种场景下,客户端220接收这些数据处理请求,并将具有统一格式的数据作业描述信息发送给k8s服务端230的服务来实现大数据计算的资源管理和调度。
根据本公开的实施例,参照图2所示,上述k8s服务端230可以包括以下功能模块:Application Operator 201、k8s API server 233和Application Master 234。
Application Operator作为资源的全局统筹的管理模块,可以包括自定义资源Application CRD(Customer Resource Definition)和Application Manager 231,可选地,Operator还可以包括Application History Server。
在一些实施例中,Operator可以包括Application CRD和Controller,其中Controller进一步包括Application Manager,此外,Controller还可以包括用于维护PodSet的管理器PodSet Manager。
在一些实施例中,由于Application CRD的本质属于对数据作业相关参数的定义,因此,由Operator执行的操作也可以被认为是由Controller实际来执行。
Application CRD包括两类参数,分别为用于作业参数定义的作业描述信息Application和用于资源管理参数定义的PodSet。
作业描述信息Application,包括规格描述信息spec和状态描述信息status。其中,spec可以包括作业管理模块创建所需要的元数据信息、作业元数据信息和作业管理策略信息;status可以包括作业状态信息、作业生命周期信息、当前作业管理模块信息、历史作业管理模块信息以及当前的资源分配和使用信息。
在一些实施例中,当前资源分配和使用信息可以直接从PodSet进行同步来获取。
PodSet,用于定义作业的资源管理参数,以及用于管理作业每次运行的AM和Pod的资源申请、状态变更的记录。
Application Manager,用于监听Application的提交并管理其生命周期;负责创建AM所需的Pod、Service等部署资源;以及,可以根据重启策略和AM状态,发起作业的重新运行等。
PodSet Manager,用于维护Application→PodSet,PodSet→PodGroup(pod群组)→Pod(工作节点最小调度单元)之间的映射关系,并管理各个资源层级的状态;以及,还可以负责作业的资源申请、资源使用情况统计。
Application History Server,用于监听Application和PodSet的变更,并将变更同步给上层用户平台。除此之外,还可以提供历史作业查询、导出等功能。
图3为本公开实施例的针对数据作业的资源管理方法的流程图。参照图3所示,该方法包括以下步骤:
S301,接收针对目标数据作业的作业描述信息。其中,所述作业描述信息包括第一作业描述信息和第二作业描述信息;第一作业描述信息用于以符合第一表达规则的方式描述与所述目标数据作业有关的配置信息;所述第二作业描述信息用于以符合第二表达规则的方式描述与所述目标数据作业有关的执行状态信息。
在本公开提出的方案中,通过设置第一表达规则和所述第二表达规则,能够统一作业描述信息的表达格式,从而实现对基于不同数据引擎下的目标数据作业的兼容和适配。
在一些实施例中,所述第一表达规则包括关于所述目标数据作业的以下字段:创建元数据信息、作业元数据信息和管理策略信息;所述第二表达规则包括关于所述目标数据作业的以下字段:作业状态信息、作业生命周期信息、当前作业管理模块信息、历史作业管理模块信息以及当前的资源分配和使用信息。
在一些实施例中,所述作业描述信息来自于接口服务器接收到的关于目标数据作业的处理请求,在接收到所述处理请求的初始阶段,作业描述信息中包括的第二作业描述信息中包括至少一个空值。这是因为,所述目标数据作业在未进行资源调度和数据处理之前,作业的执行状态可能尚未生成。而在第二作业描述信息中事先预留该字段能够方便后续根据目标数据作业的执行状态对该字段进行填充来更新第二作业描述信息,而不必再构建额外的交互信息来同步目标数据作业的运行状态。
所述创建元数据信息可以包括以下至少之一:镜像、pod描述、资源量、调度配置。
所述作业元数据信息可以包括以下至少之一:所属队列,用户名,优先级,作业类型。
所述作业管理策略信息可以包括以下至少之一:重启策略、重启次数、重启间隔。
所述生命周期信息可以包括:启动和终止时间戳。
所述当前资源分配和使用信息还可以包括当前的资源的计费信息。
所述作业状态信息包括第一作业状态信息和第二作业状态信息,所述第一作业状态信息表征针对所述目标数据作业进行资源管理的状态;所述第二作业状态信息用于表征所述目标数据作业在所述作业执行模块中按照自身的业务逻辑执行数据作业处理的状态。
上述关于作业描述信息中包含的具体字段的列举,意在表明,可以基于上述字段或参数分别构建第一表达规则和第二表达规则,一旦第一表达规则和第二表达规则确定,所述作业描述信息中会包含相应的字段,而不会因为某个字段对应的值为空而不包含该字段,也不会因为某个目标数据作业对应得数据计算引擎未提供该字段对应得参数而不包含该字段。
例如所述创建元数据信息字段包括5个参数时,在一些目标数据作业的作业描述信息中,其中4个参数对应的值不为空,而另一个参数对应的值为空,因为该空值对应的参数在该目标数据作业对应的数据计算引擎中并未提供。但这并不会影响作业描述信息的表达规则,也即,统一的作业描述信息能够根据兼容性的需求来设计和配置,以满足不同数据计算引擎下的目标数据作业的对于资源管理方案的要求。
通过抽象出通用化的统一作业描述信息,针对不同的类型的大数据架构的计算作业,均采用相同格式,有助于提升部署方法的可移植性和拓宽应用场景,可以支持多种框架的多种运行模式,降低与各种类型的大数据框架进行适配的难度,降低不同大数据框架的接入成本。
在步骤S301中,所述针对目标数据作业的处理请求可以包括:视频数据处理请求、文本数据处理请求、语音数据处理请求、机器学习模型训练请求等。所述目标数据作业可以是基于批处理或流处理,也可以是基于高并发的数据处理。
S302,基于所述第一作业描述信息为所述目标数据作业创建作业管理模块。其中,所述作业管理模块用于为所述目标数据作业创建作业执行模块和管理所述作业执行模块。
在一些实施例中,步骤S302可以由服务端的operator或controller执行。
在一些实施例中,对于k8s平台部署的方案中,可以基于第一作业描述信息创建AM,这里,AM实现为所述作业管理模块。
在一些基于k8s的实施例中,步骤S302可以由Controller执行,包括以下步骤:
S3021,监听与所述目标数据作业有关的作业描述信息。
S3022,根据第一作业描述信息为所述目标数据作业创建对应的AM。
S3023,AM启动运行后,监听AM的运行并更新关联的PodSet的状态。
在一些实施例中,AM可以包括spark driver或jobmanager。
S303,所述作业管理模块为所述目标数据作业创建作业执行模块。
在一些实施例中,所述作业管理模块为AM,所述作业执行模块为pod;或者,所述作业管理模块为AM,所述作业执行模块为container或pod。
在k8s中,广义而言AM实际上也是pod的一种,只是对于这部分pod而言,实现作业管理功能,而对于另一部分pod而言,实现作业执行功能。因此,有时AM也被称为AM pod(s),而实现作业执行功能的pod也被称为worker pod(s)。
在基于k8s实现的一些方案中,所述步骤S303进一步包括:
S3031,作业管理模块为所述目标数据作业创建作业执行模块。
S3032,创建的作业执行模块启动后,作业管理模块监听作业执行模块的运行状态并对所述作业执行模块进行管理。
在一些实施例中,为所述目标数据作业创建作业执行模块的步骤,是通过在作业执行模块中标记对应于目标数据作业的标识来实现的,例如,通过在pod的注解annotation中携带目标数据作业的ID、名称等。
S304,基于目标数据作业的执行状态更新第二作业描述信息。
如图3所示,从执行顺序上,步骤S304并不是在步骤S303之后完成,而是在步骤S302-303的同时并行执行。
步骤S304可以包括:
当步骤S302中创建的作业管理模块启动运行后,监听作业管理模块的运行并更新第二作业描述信息。
当步骤S303中创建的作业执行模块启动运行后,监听作业执行模块的运行并更新第二作业描述信息。
进一步地,第二作业描述信息包括作业状态信息,所述更新第二作业描述信息是指更新所述作业状态信息。
在一些实施例中,所述作业状态信息包括第一作业状态信息和第二作业状态信息,所述第一作业状态信息表征针对所述目标数据作业进行资源管理的状态;所述第二作业状态信息用于表征所述目标数据作业在所述作业执行模块中按照自身的业务逻辑执行数据作业处理的状态;相应地,步骤S304包括:
监听所述作业管理模块和所述作业执行模块的运行状态;
基于所述运行状态生成所述第一作业状态信息;
获取所述第二作业状态信息;
基于所述第一作业状态信息和所述第二作业状态信息,更新所述目标数据作业的作业状态信息。
在一些实施例中,将更新的所述作业描述信息发送给接口服务器,所述接口服务器用于根据所述作业描述信息监听所述作业管理模块和所述作业执行模块的运行状态。
在一些实施例中,所述第一作业状态以如图4所示的状态机,在不同状态中流转。具体实现方式如下:
submitted状态,表示Application已提交至k8s,待Application Controller初始化。
accepted状态,表示Application关联资源创建完成,AM pod(s)待调度或容器创建中。流转条件为:所有关联资源创建成功。
deployed状态,表示AM pod(s)处于running状态,作业所需最小资源已满足,pod(s)处于running状态。流转条件为:AM pod(s)进入running状态,且最少running workerpod(s)数量已满足。
deploying状态:表示AM pod(s)处于running状态,作业所需最小资源未满足,pod(s)待调度或容器创建中。流转条件为:AM pod(s)进入running状态,且最少runningworker pod(s)数量未满足。
finishing状态:表示AM运行完成成功退出,表示此次作业尝试(attempt)运行成功。流转条件为:AM pod(s)都变成succeeded状态。
finished状态:表示终态,作业最后一次attempt运行成功且不再重试。流转条件为:资源清理完成,作业达到最大重试次数。
failing状态:表示AM运行失败并退出或被非预期删除,表示此次attempt运行失败。流转条件为:AM pod(s)中存在failed状态。
failed状态:表示终态,作业最后一次attempt运行失败且不再重试。流转条件为:资源清理完成,作业达到最大重试次数。
killing状态:表示作业被kill,等待资源被清理完成。流转条件为:作业收到关联的kill command。
killed状态:表示终态,作业被kill后资源清理完成。流转条件为:资源清理完成。
pendingRerun状态:表示作业前一次attempt运行完成,准备新一轮的资源准备。流转条件为:所有关联资源(包括部署资源、虚拟管理模块AM和工作节点pod(s))创建成功。
需要注意的是,只有当第一作业状态出于deploying和deployed状态时,第二作业状态才是有效的。
基于上述步骤S301-304,在接收到数据作业描述信息之后,根据数据作业描述信息(执行主体例如可以为应用管理模块,在k8s系统架构中具体为Application Operator)来创建与大数据计算作业对应的作业管理模块(例如可以为k8s系统架构中的AM),通过作业管理模块来创建与数据作业对应的作业执行模块(例如可以为k8s系统架构中的workerpod),具体实现为在作业执行模块中标记与目标数据作业对应的标识信息(例如可以通过在pod的annotation中携带目标数据作业ID)。通过上述方式,本公开的方案针对基于各种数据计算引擎的数据作业能够实现统一接入以及逐级管理,包括应用管理模块管理作业管理模块和作业管理模块管理作业执行模块,一方面能够有效管理和表达数据作业的运行状态,另一方面能够实现定制化的作业配置策略。
在一些实施例中,步骤S303还可以包括,当所述目标数据作业为批处理作业时,为所述目标数据作业创建作业执行群组,所述作业执行群组包括由所述作业管理模块为所述目标数据作业创建的作业执行模块;
向调度模块发送关于所述作业执行群组的通知;
相应地,步骤S304还包括,响应于所述调度模块返回的调度状态信息,更新所述目标数据作业的所述作业描述信息。
在一些实施例中,更新所述目标数据作业的所述作业描述信息,包括以下之一:
响应于所述调度模块返回的调度超时信息,删除所述作业执行群组和所述作业执行群组包括的作业执行模块,并更新所述目标数据作业的所述作业描述信息;
响应于所述调度模块返回的所述调度状态信息,所述调度状态信息包括所述作业执行群组和所述作业执行模块处于运行状态或已调度的信息,更新所述目标数据作业的所述作业描述信息,所述作业描述信息包括调度完成的信息。
通过配置调度模块,当目标数据作业为批处理作业时,能够调用外部的批处理调度器来进行批处理调度,屏蔽了数据计算引擎和资源管理平台的交互细节,降低批式调度器的介入成本。
图5示出了根据本公开的基于k8s的针对数据作业的资源管理方法的实施过程的示意图,其中分为两个阶段来描述,分别用图5(a)展示第一阶段的实施过程;图5(b)为第二阶段的实施过程。
参照图5(a)所示,步骤1.1,请求端(或者作业提交方)提交目标数据作业的相关参数;步骤1.2,在客户端(Client)接收目标数据作业的相关参数,构建具有统一格式的作业描述信息application并提交给API server;步骤2.1,Application Controller从k8s APIServer监听Application资源以确定是否有新的目标数据作业;在步骤2.2,在监听到存在新的目标数据作业请求时,创建数据作业的作业管理模块AM(Application Master),以及运行记录PodSet;步骤2.3,启动AM;步骤3,Controller继续监听AM的运行,并根据AM的运行状态更新关联的作业状态信息。其中,对于Spark数据引擎和Flink数据引擎,AM分别可以对应于driver和jobmanager。
通过第一阶段,实现了应用管理节点Operator对作业管理模块AM的创建,并在AM启动之后监听AM来更新作业状态信息。
参照图5(b)所示,步骤4.1,作业管理模块AM创建作业执行模块worker pod(s),所有创建的worker pod(s)的注解信息中携带作业标识;步骤4.2,应用管理模块Controller监听worker pod(s)的创建,并注入相关的配置;步骤5.1,更新作业描述信息的作业状态信息,同时根据需求创建或更新批调度单元podgroup;步骤5.2,当存在批调度时,持续监视podgroup的调度状态,根据调度状态更新作业状态;步骤5.3,worker pod(s)启动;步骤5.4,AM监听worker pod(s)的状态。
本公开提出的针对数据作业的资源管理方案能够兼容基于不同数据计算引擎的目标数据作业场景,为了更好的展示兼容性,以下述实施例进行说明:
步骤S601,基于预先设置的自定义资源CRD部署Controller,其中可以指明当前的部署环境,例如是域内还是ToB。
步骤S602,客户端Client提交具有统一格式的Appliation。具体包括以下方式之一:
在Spark Client模式下,Client向服务端提交Application,其中目标数据作业名name和所属队列字段对应的值。
在Spark Cluster模式下,Client向服务端提交Application,其中包括目标数据作业名name、所属队列,并且还包括作业管理模块driver pod创建所需要的信息。
在Flink Session/Application模式下,Client向服务端提交Application,其中包括目标数据作业名name、所属队列,并且还包括作业管理模块jobmanager pod创建所需要的信息。
步骤S603,经过webhook准入校验后,Controller根据作业描述信息创建并监听所需资源,并更新作业状态。具体包括以下方式之一:
在Spark Client架构模式下,创建对应的PodSet,更新作业状态信息为running。
在Spark Cluster架构模式下,创建对应的PodSet、driver pod、为driver与executor提供通信的服务service、spark/hadoop configmap,driver pod开始运行后,更新作业状态信息为running状态。
在Flink Session/Application架构模式下,创建PodSet、jobmanager pod与taskmanager通信所需的服务service、flink/hadoop configmap。jobmanager开始运行后,将作业状态设置为running状态。
步骤604,PodSet Manager监听到PodSet的创建,建立目标数据作业到PodSet的最新映射;同时,监听带有annotation的pods,根据在annotation中标记的调度器类型和作业类型决定是否创建podgroup;如果需要创建,则进一步维护podgroup到pod的映射,并修改pod的podgroup annotation。
步骤605,作业管理模块启动之后,启动resource manager向k8s申请作业执行模块pod。具体实现为以下方式之一:
Spark Client架构模式下,Client本地的driver pod向k8s提交pod并持续监听状态,pod需要带上Application name的注解。
Spark Cluster架构模式下,driver pod向k8s提交pod并持续监听状态,pod需要带上Application name的注解。
Flink Session架构模式下,jobmanager pod向k8s提交pod并持续监听状态,pod需要带上Application name的注解。
Flink Application架构模式下,jobmanager pod向k8s提交pod并持续监听状态,taskmanager运行之后再运行具体的作业,pod需要带上Application name的注解。
步骤S606,PodSet Manager持续监听pod(s)状态,根据调度器类型和数据作业类型决定是否创建podgroup;如果需要创建,则维护podgroup到pod的映射,并修改pod的podgroup annotation;此外持续监听podgroup状态,并根据podgroup的状态来更新作业状态。
在一些实施例中,通过配置调度模块或调度器来实现对特定数据作业的调度处理,尤其适合批处理数据作业。如图6所示,为基于调度模块实现针对数据作业的资源管理的流程图。
关于接收作业描述信息以及基于作业描述信息创建作业管理模块的步骤在前面步骤S301和S302中已经详细描述,在此不再赘述。
对于步骤S303,作业管理模块创建作业执行模块之后,进一步包括:
S701,判定目标数据作业是否为批处理作业。
在一些实施例中,可以通过pod携带调度器类型和/或作业类型来确定是否为批处理作业。
进一步地,可以由应用管理模块,例如在k8s的Controller,监听pod来判定目标数据作业是否为批处理作业。
S702,如果目标数据作业为批处理作业时,创建作业执行群组,其中所述作业执行群组包括多个作业执行模块。
在一些实施例中,创建作业执行群组(例如为podgroup)可以实现为,则在应用管理模块Controller的维护作业执行群组到作业执行模块的映射(例如podgroup到pod的映射),并响应地修改pod的podgroup annotation。
具体地,例如可以由Controller中的PodSet Manager维护上述映射关系。
S703,向调度模块发送关于所述作业执行群组的通知。
具体地,向调度模块发送关于已增加所述作业执行群组的通知,用于调度模块根据该通知进行作业执行模块的调度。
在一些实施例中,调度模块可以为Godel调度器、Gro调度器或volcano调度器。
S704,持续监视作业执行群组的状态,并根据调度状态信息更新作业状态信息。
在一些实施例中,应用管理模块Controller或PodSet Manager会持续监听podgroup状态,如果调度状态信息为调度失败,将PodSet的状态置为失败,更新作业状态信息为重试或失败状态;如果调度状态信息为完成,则更新作业状态信息为调度完成。
在一些实施例中,根据调度状态信息更新所述作业状态信息,包括以下之一:
响应于所述调度模块返回的调度超时信息,删除所述作业执行群组和所述作业执行群组包括的作业执行模块,并更新作业状态信息为重试或失败;
响应于所述调度模块返回的所述调度状态信息,所述调度状态信息包括所述作业执行群组和所述作业执行模块处于运行状态或已调度的信息,更新所述作业状态信息为调度完成。
上述步骤中,根据数据作业是否为批处理作业,确定是否生成作业执行群组,并持续监视作业执行群组的调度状态,根据调度状态更新作业状态由此实现借助于外部批处理调度器来进行批处理调度,应用管理模块无需关注底层的调度细节,不捆绑某个底层调度器,插件化适配多种批调度器,场景应用更为广泛且资源调整更为灵活。而且,在包含pod群组对应的实施例中,能够进行批处理、流处理等场景下的数据处理。
在采用对应各个功能划分各个功能模块的情况下,本公开实施例还提供了一种针对数据作业的资源管理装置,该装置可以为服务器或应用于服务器的芯片。如图7所示,该装置800包括:
接收模块801,用于接收针对目标数据作业的作业描述信息,所述作业描述信息包括第一作业描述信息和第二作业描述信息;第一作业描述信息用于以符合第一表达规则的方式描述与所述目标数据作业有关的配置信息;所述第二作业描述信息用于以符合第二表达规则的方式描述与所述目标数据作业有关的执行状态信息;
创建模块802,用于基于所述第一作业描述信息为所述目标数据作业创建作业管理模块,所述作业管理模块为所述目标数据作业创建作业执行模块和管理所述作业执行模块;
更新模块803,用于基于所述目标数据作业的执行状态更新所述目标数据作业的所述第二作业描述信息。本公开实施例提供的基于k8s部署大数据计算作业的装置800包括:请求接收模块801、应用管理模块802和pod创建模块803。
本公开实施例还提供一种电子设备,包括:至少一个处理器;用于存储所述至少一个处理器可执行指令的存储器;其中,所述至少一个处理器被配置为执行所述指令,以实现本公开实施例公开的上述方法。
图8为本公开一示例性实施例提供的电子设备的结构示意图。如图8所示,该电子设备1800包括至少一个处理器1801以及耦接至处理器1801的存储器1802,该处理器1801可以执行本公开实施例公开的上述方法中的相应步骤。
上述处理器1801还可以称为中央处理单元(central processing unit,CPU),其可以是一种集成电路芯片,具有信号的处理能力。本公开实施例公开的上述方法中的各步骤可以通过处理器1801中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1801可以是通用处理器、数字信号处理器(digital signal processing,DSP)、ASIC、现成可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本公开实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储器1802中,例如随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质。处理器1801读取存储器1802中的信息,结合其硬件完成上述方法的步骤。
另外,根据本公开的各种操作/处理在通过软件和/或固件实现的情况下,可从存储介质或网络向具有专用硬件结构的计算机系统,例如图9所示的计算机系统1900安装构成该软件的程序,该计算机系统在安装有各种程序时,能够执行各种功能,包括诸如前文所述的功能等等。图9为本公开一示例性实施例提供的计算机系统的结构框图。
计算机系统1900旨在表示各种形式的数字电子的计算机设备,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图9所示,计算机系统1900包括计算单元1901,该计算单元1901可以根据存储在只读存储器(ROM)1902中的计算机程序或者从存储单元1908加载到随机存取存储器(RAM)1903中的计算机程序,来执行各种适当的动作和处理。在RAM 1903中,还可存储计算机系统1900操作所需的各种程序和数据。计算单元1901、ROM 1902以及RAM 1903通过总线1904彼此相连。输入/输出(I/O)接口1905也连接至总线1904。
计算机系统1900中的多个部件连接至I/O接口1905,包括:输入单元1906、输出单元1907、存储单元1908以及通信单元1909。输入单元1906可以是能向计算机系统1900输入信息的任何类型的设备,输入单元1906可以接收输入的数字或字符信息,以及产生与电子设备的用户设置和/或功能控制有关的键信号输入。输出单元1907可以是能呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。存储单元1908可以包括但不限于磁盘、光盘。通信单元1909允许计算机系统1900通过网络诸如因特网的与其他设备交换信息/数据,并且可以包括但不限于调制解调器、网卡、红外通信设备、无线通信收发机和/或芯片组,例如蓝牙TM设备、WiFi设备、WiMax设备、蜂窝通信设备和/或类似物。
计算单元1901可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1901的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1901执行上文所描述的各个方法和处理。例如,在一些实施例中,本公开实施例公开的上述方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1908。在一些实施例中,计算机程序的部分或者全部可以经由ROM 1902和/或通信单元1909而被载入和/或安装到电子设备1900上。在一些实施例中,计算单元1901可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行本公开实施例公开的上述方法。
本公开实施例还提供一种计算机可读存储介质,其中,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行本公开实施例公开的上述方法。
本公开实施例中的计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。上述计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。更具体的,上述计算机可读存储介质可以包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
本公开实施例还提供一种计算机程序产品,包括计算机程序,其中,所述计算机程序被处理器执行时实现本公开实施例公开的上述方法。
在本公开的实施例中,可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言,诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络(包括局域网(LAN)或广域网(WAN))连接到用户计算机,或者,可以连接到外部计算机。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的模块、部件或单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块、部件或单元的名称在某种情况下并不构成对该模块、部件或单元本身的限定。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示例性的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
以上描述仅为本公开的一些实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
虽然已经通过示例对本公开的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本公开的范围。本领域的技术人员应该理解,可在不脱离本公开的范围和精神的情况下,对以上实施例进行修改。本公开的范围由所附权利要求来限定。
Claims (12)
1.一种针对数据作业的资源管理的方法,其特征在于,所述方法包括:
接收针对目标数据作业的作业描述信息,所述作业描述信息包括第一作业描述信息和第二作业描述信息;第一作业描述信息用于以符合第一表达规则的方式描述与所述目标数据作业有关的配置信息;所述第二作业描述信息用于以符合第二表达规则的方式描述与所述目标数据作业有关的执行状态信息;
基于所述第一作业描述信息,利用应用管理模块为所述目标数据作业创建作业管理模块;所述作业管理模块用于为所述目标数据作业创建作业执行模块和管理所述作业执行模块;所述应用管理模块用于进行所述作业管理模块的管理;所述作业管理模块用于进行所述作业执行模块的管理;
基于所述目标数据作业的执行状态更新所述目标数据作业的所述第二作业描述信息;
所述第一表达规则为用于对所述配置信息进行描述的统一表达格式;
所述第二表达规则为用于对所述执行状态信息进行描述的统一表达格式。
2.根据权利要求1所述的方法,其特征在于,其中,所述作业描述信息来自于接口服务器接收到的针对目标数据作业的处理请求,所述处理请求中携带所述作业描述信息,所述处理请求中携带的所述作业描述信息中的第二作业描述信息包括至少一个空值;
所述基于所述目标数据作业的执行状态更新所述目标数据作业的所述作业描述信息,包括:
基于所述目标数据作业的执行状态,更新所述第二作业描述信息中的至少一个所述空值。
3.根据权利要求1所述的方法,其特征在于,其中,
所述第一表达规则包括关于所述目标数据作业的以下字段:创建元数据信息、作业元数据信息和管理策略信息;
所述第二表达规则包括关于所述目标数据作业的以下字段:作业状态信息、作业生命周期信息、当前作业管理模块信息、历史作业管理模块信息以及当前的资源分配和使用信息。
4.根据权利要求3所述的方法,其特征在于,其中,所述作业状态信息包括第一作业状态信息和第二作业状态信息,所述第一作业状态信息表征针对所述目标数据作业进行资源管理的状态;所述第二作业状态信息用于表征所述目标数据作业在所述作业执行模块中按照自身的业务逻辑执行数据作业处理的状态;
所述方法包括:
监听所述作业管理模块和所述作业执行模块的运行状态;
基于所述运行状态生成所述第一作业状态信息;
获取所述第二作业状态信息;
基于所述第一作业状态信息和所述第二作业状态信息,更新所述目标数据作业的作业状态信息。
5.根据权利要求4所述的方法,其特征在于,其中,所述第一作业状态信息包括以下至少一种:
所述作业管理模块已经处于运行状态,且用于执行所述目标数据作业所需的最少数量的作业执行模块处于运行状态;
所述作业管理模块已经处于运行状态,且用于执行所述目标数据作业所需的最少数量的作业执行模块处于待调度状态或容器创建中;所述作业执行模块包括多个所述容器。
6.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:
响应于所述目标数据作业为批处理作业,为所述目标数据作业创建作业执行群组,所述作业执行群组包括由所述作业管理模块为所述目标数据作业创建的作业执行模块;
向调度模块发送关于所述作业执行群组的通知;
响应于所述调度模块返回的调度状态信息,更新所述目标数据作业的所述作业描述信息。
7.根据权利要求6所述的方法,其特征在于,所述响应于所述调度模块返回的调度状态信息,更新所述目标数据作业的所述作业描述信息,包括以下之一:
响应于所述调度模块返回的调度超时信息,删除所述作业执行群组和所述作业执行群组包括的作业执行模块,并更新所述目标数据作业的所述作业描述信息;
响应于所述调度模块返回的所述调度状态信息,所述调度状态信息包括所述作业执行群组和所述作业执行模块处于运行状态或已调度的信息,更新所述目标数据作业的所述作业描述信息,所述作业描述信息包括调度完成的信息。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将更新的所述作业描述信息发送给接口服务器,所述接口服务器用于根据所述作业描述信息监听所述作业管理模块和所述作业执行模块的运行状态。
9.一种针对数据作业进行资源管理的装置,其特征在于,包括:
接收模块,用于接收针对目标数据作业的作业描述信息,所述作业描述信息包括第一作业描述信息和第二作业描述信息;第一作业描述信息用于以符合第一表达规则的方式描述与所述目标数据作业有关的配置信息;所述第二作业描述信息用于以符合第二表达规则的方式描述与所述目标数据作业有关的执行状态信息;
创建模块,用于基于所述第一作业描述信息,利用应用管理模块为所述目标数据作业创建作业管理模块所述作业管理模块为所述目标数据作业创建作业执行模块和管理所述作业执行模块;所述应用管理模块用于进行所述作业管理模块的管理;所述作业管理模块用于进行所述作业执行模块的管理;
更新模块,用于基于所述目标数据作业的执行状态更新所述目标数据作业的所述第二作业描述信息;
所述第一表达规则为用于对所述配置信息进行描述的统一表达格式;
所述第二表达规则为用于对所述执行状态信息进行描述的统一表达格式。
10.一种电子设备,其特征在于,包括:
至少一个处理器;
用于存储所述至少一个处理器可执行指令的存储器;
其中,所述至少一个处理器被配置为执行所述指令,以实现如权利要求1-8中任一项所述的方法。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,当所述计算机程序由处理器执行时实现如权利要求1-8中任一项所述的方法。
12.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-8中任一项所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211124572.1A CN115454450B (zh) | 2022-09-15 | 2022-09-15 | 一种针对数据作业的资源管理的方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211124572.1A CN115454450B (zh) | 2022-09-15 | 2022-09-15 | 一种针对数据作业的资源管理的方法、装置、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115454450A CN115454450A (zh) | 2022-12-09 |
CN115454450B true CN115454450B (zh) | 2024-04-30 |
Family
ID=84305849
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211124572.1A Active CN115454450B (zh) | 2022-09-15 | 2022-09-15 | 一种针对数据作业的资源管理的方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115454450B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108920259A (zh) * | 2018-03-30 | 2018-11-30 | 华为技术有限公司 | 深度学习作业调度方法、系统和相关设备 |
CN110221910A (zh) * | 2019-06-19 | 2019-09-10 | 北京百度网讯科技有限公司 | 用于执行mpi作业的方法和装置 |
CN111767199A (zh) * | 2020-06-24 | 2020-10-13 | 中国工商银行股份有限公司 | 一种基于批处理作业的资源管理方法、装置、设备及系统 |
CN112000350A (zh) * | 2020-07-29 | 2020-11-27 | 新华三大数据技术有限公司 | 一种动态规则更新方法、装置及存储介质 |
CN112306719A (zh) * | 2020-11-23 | 2021-02-02 | 中国科学院计算机网络信息中心 | 一种任务调度方法与装置 |
CN112751938A (zh) * | 2020-12-30 | 2021-05-04 | 上海赋算通云计算科技有限公司 | 一种基于多集群作业的实时数据同步系统,实现方法以及存储介质 |
CN113296929A (zh) * | 2020-06-29 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 基于云计算的资源匹配方法、装置及系统 |
CN113391906A (zh) * | 2021-06-25 | 2021-09-14 | 北京字节跳动网络技术有限公司 | 作业更新方法、装置、计算机设备及资源管理系统 |
CN113419838A (zh) * | 2021-07-16 | 2021-09-21 | 北京字节跳动网络技术有限公司 | 资源调度方法、装置、电子设备及存储介质 |
CN114489985A (zh) * | 2022-01-26 | 2022-05-13 | 阿里云计算有限公司 | 数据处理方法、设备及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4109153B2 (ja) * | 2003-05-07 | 2008-07-02 | 富士通株式会社 | ジョブ制御装置、ジョブ制御ファイル、ジョブ制御方法及びジョブ制御プログラム |
JP5451412B2 (ja) * | 2009-01-21 | 2014-03-26 | キヤノン株式会社 | 印刷ジョブ管理装置及び印刷ジョブ管理方法 |
IN2013CH04372A (zh) * | 2013-09-26 | 2015-04-03 | Infosys Ltd |
-
2022
- 2022-09-15 CN CN202211124572.1A patent/CN115454450B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108920259A (zh) * | 2018-03-30 | 2018-11-30 | 华为技术有限公司 | 深度学习作业调度方法、系统和相关设备 |
CN110221910A (zh) * | 2019-06-19 | 2019-09-10 | 北京百度网讯科技有限公司 | 用于执行mpi作业的方法和装置 |
CN111767199A (zh) * | 2020-06-24 | 2020-10-13 | 中国工商银行股份有限公司 | 一种基于批处理作业的资源管理方法、装置、设备及系统 |
CN113296929A (zh) * | 2020-06-29 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 基于云计算的资源匹配方法、装置及系统 |
CN112000350A (zh) * | 2020-07-29 | 2020-11-27 | 新华三大数据技术有限公司 | 一种动态规则更新方法、装置及存储介质 |
CN112306719A (zh) * | 2020-11-23 | 2021-02-02 | 中国科学院计算机网络信息中心 | 一种任务调度方法与装置 |
CN112751938A (zh) * | 2020-12-30 | 2021-05-04 | 上海赋算通云计算科技有限公司 | 一种基于多集群作业的实时数据同步系统,实现方法以及存储介质 |
CN113391906A (zh) * | 2021-06-25 | 2021-09-14 | 北京字节跳动网络技术有限公司 | 作业更新方法、装置、计算机设备及资源管理系统 |
CN113419838A (zh) * | 2021-07-16 | 2021-09-21 | 北京字节跳动网络技术有限公司 | 资源调度方法、装置、电子设备及存储介质 |
CN114489985A (zh) * | 2022-01-26 | 2022-05-13 | 阿里云计算有限公司 | 数据处理方法、设备及存储介质 |
Non-Patent Citations (3)
Title |
---|
Adaptive network manager: Coordinating operations in flex-grid networks;Victor Lopez 等;《2013 15th International Conference on Transparent Optical Networks》;20130919;第1-4页 * |
基于Linux环境下torque集群作业管理平台的研究和应用;李仕金 等;《云南大学学报(自然科学版)》;20111215;第35卷(第S2期);第305-310页 * |
面向Flink迭代作业的动态资源分配策略;岳晓飞 等;《软件学报》;20220314;第33卷(第3期);第985-1004页 * |
Also Published As
Publication number | Publication date |
---|---|
CN115454450A (zh) | 2022-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9661071B2 (en) | Apparatus, systems and methods for deployment and management of distributed computing systems and applications | |
US10496503B2 (en) | Healing cloud services during upgrades | |
CN105607954B (zh) | 一种有状态容器在线迁移的方法和装置 | |
US9684502B2 (en) | Apparatus, systems, and methods for distributed application orchestration and deployment | |
CN112104723B (zh) | 一种多集群的数据处理系统及方法 | |
CN110737442A (zh) | 一种边缘应用管理方法及系统 | |
WO2019184164A1 (zh) | 自动部署Kubernetes从节点的方法、装置、终端设备及可读存储介质 | |
CN113569987A (zh) | 模型训练方法和装置 | |
WO2022037612A1 (zh) | 提供应用构建服务的方法及应用构建平台、应用部署方法和系统 | |
US20060095435A1 (en) | Configuring and deploying portable application containers for improved utilization of server capacity | |
US9852220B1 (en) | Distributed workflow management system | |
CN109117252B (zh) | 基于容器的任务处理的方法、系统及容器集群管理系统 | |
CN111212116A (zh) | 一种基于容器云的高性能计算集群创建方法和系统 | |
CN111984270A (zh) | 应用部署方法和系统 | |
WO2020001162A1 (zh) | 容器管理方法、装置和设备 | |
CN112463290A (zh) | 动态调整计算容器的数量的方法、系统、装置和存储介质 | |
CN112363820A (zh) | 基于异构硬件的统一资源池化容器调度引擎及其调度方法 | |
CN116360918A (zh) | 建模数据处理方法、装置、计算机设备和存储介质 | |
US11663349B2 (en) | System and method for managing data object creation | |
US11614957B1 (en) | Native-hypervisor based on-demand code execution system | |
CN114579250A (zh) | 一种构建虚拟集群的方法、装置及存储介质 | |
CN115454450B (zh) | 一种针对数据作业的资源管理的方法、装置、电子设备和存储介质 | |
CN116501469A (zh) | 高性能计算集群的控制方法、电子设备以及存储介质 | |
CN110782040A (zh) | 一种pytorch任务训练方法、装置、设备及介质 | |
CN115357336A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |