CN112817713B - 作业调度方法、装置和电子设备 - Google Patents
作业调度方法、装置和电子设备 Download PDFInfo
- Publication number
- CN112817713B CN112817713B CN202110113631.4A CN202110113631A CN112817713B CN 112817713 B CN112817713 B CN 112817713B CN 202110113631 A CN202110113631 A CN 202110113631A CN 112817713 B CN112817713 B CN 112817713B
- Authority
- CN
- China
- Prior art keywords
- machine room
- job
- target
- output
- calculating
- 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
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
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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
-
- 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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明的实施例提供了一种作业调度方法、装置和电子设备,涉及数据处理技术领域。在提取作业对应的特征信息后,根据特征信息,计算得到运行作业所需的资源,根据运行作业所需的资源,确定运行作业的目标机房,通过目标机房运行作业,避免了开发人员随意申请资源导致的资源浪费,提高了整体资源利用率。
Description
技术领域
本发明涉及数据处理技术领域,具体而言,涉及一种作业调度方法、装置和电子设备。
背景技术
随着业务对数据处理实时性的要求不断提高,传统的离线计算方式已逐步被实时计算取代。
目前,实时计算作业的运行流程需要用户对数据的源头、输出、计算资源所处的机房环境等信息有比较明确的了解,整个过程依赖于作业开发人员的经验以及对公司基础架构环境资源的了解。但实际应用中,作业开发人员对公司的基础架构并不熟悉,更多的是关注于自身的作业需求,往往会申请较多的计算资源,从而导致资源的浪费和计算资源使用的不均衡。
发明内容
基于上述研究,本发明提供了一种作业调度方法、装置和电子设备,以改善上述问题。
本发明的实施例可以这样实现:
第一方面,本发明提供一种作业调度方法,所述方法包括:
对作业进行解析,得到所述作业对应的特征信息;
根据所述特征信息,计算得到运行所述作业所需的资源;
根据运行所述作业所需的资源,确定运行所述作业的目标机房;
将所述作业提交到所述目标机房,以使所述目标机房运行所述作业。
在可选的实施方式中,所述特征信息包括作业消费的数据源的信息、算子的类型以及每个类型的算子的个数;所述根据所述特征信息,计算得到运行所述作业所需的资源的步骤包括:
根据所述数据源的信息,查询得到所述数据源的输出速率;
根据每个类型的算子的个数以及每个类型的算子的复杂度系数,计算得到计算逻辑复杂度;
根据所述输出速率以及所述计算逻辑复杂度,计算得到运行所述作业所需的资源。
在可选的实施方式中,所述资源包括资源容量;所述根据所述输出速率以及所述计算逻辑复杂度,计算得到运行所述作业所需的资源的步骤包括:
根据所述输出速率以及所述计算逻辑复杂度,计算得到目标CPU核数;
根据所述目标CPU核数计算得到目标内存;
根据所述目标内存以及所述目标CPU核数,得到运行所述作业所需的资源容量。
在可选的实施方式中,所述根据所述输出速率以及所述计算逻辑复杂度,计算得到目标CPU核数的步骤包括:
通过以下公式计算得到所述目标CPU核数:
其中,X为目标CPU核数;A为所述输出速率;S为单核单复杂度的数据消费速率;B为计算逻辑复杂度;C为常数。
在可选的实施方式中,所述特征信息还包括时延需求以及所述作业的输出信息,所述根据运行所述作业所需的资源,确定运行所述作业的目标机房的步骤包括:
获取当前各个机房的剩余资源容量;
根据所述数据源的信息,查询得到所述数据源所在的源机房;
根据所述作业的输出信息,查询得到所述作业的输出机房;
获取所述源机房到各个机房的网络延迟以及带宽单价;
获取各个机房到所述输出机房的网络延迟以及带宽单价;
根据所述剩余资源容量、所述源机房到各个机房的网络延迟以及带宽单价、所述各个机房到所述输出机房的网络延迟以及带宽单价、所述时延需求以及所述资源容量,计算得到所述目标机房。
在可选的实施方式中,所述计算得到所述目标机房的步骤包括:
通过以下公式计算得到目标机房:
其中,F(Rs→Rk)表示从源机房Rs到第k个机房Rk的带宽单价;F(Rk→Rd)表示从第k个机房Rk到输出机房Rd的带宽单价;A表示源机房的输出速率,E表示输出机房的输入速率;URk(X,M)表示第k个机房的剩余资源容量;U(X,M)表示资源容量;D(expect)表示时延需求,D(work)表示作业引入的延迟;D(Rs→Rk)表示源机房Rs到第k个机房Rk的网络延迟;D(Rk→Rd)表示从第k个机房Rk到输出机房Rd的网络延迟。
在可选的实施方式中,所述资源还包括实例个数以及实例规格;所述将所述作业提交到所述目标机房的步骤包括:
获取与所述实例规格相同的多个目标实例;其中,所述目标实例的个数与所述实例个数相同;
将各所述目标实例以及所述作业提交到所述目标机房,以使所述目标机房根据各所述目标实例,运行所述作业。
在可选的实施方式中,所述算子的类型包括源算子;所述方法还包括计算得到所述实例个数以及实例规格的步骤;该步骤包括:
根据所述源算子的个数,得到所述实例个数;
根据所述目标内存、所述CPU核数以及所述实例个数计算得到所述实例规格。
第二方面,本发明提供一种作业调度装置,包括作业解析模块、资源计算模块、机房选择模块以及作业发布模块;
所述作业解析模块用于对作业进行解析,得到所述作业对应的特征信息;
所述资源计算模块用于根据所述特征信息,计算得到所述作业所需的资源;
所述机房选择模块用于根据运行所述作业所需的资源,确定运行所述作业的目标机房;
所述作业发布模块用于将所述作业提交到所述目标机房,以使所述目标机房运行所述作业。
第三方面,本发明提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现前述实施方式任意一项所述的作业调度方法。
第四方面,本发明提供一种可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序被执行时实现前述实施方式任意一项所述的作业调度方法。
本发明实施例提供的作业调度方法、装置和电子设备,在提取作业对应的特征信息后,根据特征信息,计算得到运行作业所需的资源,根据运行作业所需的资源,确定运行作业的目标机房,通过目标机房运行作业,避免了开发人员随意申请资源导致的资源浪费,提高了整体资源利用率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例所提供的电子设备的一种方框示意图。
图2为本发明实施例所提供的作业调度方法的一种流程示意图。
图3为本发明实施例所提供的作业调度方法的另一种流程示意图。
图4为本发明实施例所提供的作业调度方法的又一种流程示意图。
图5为本发明实施例所提供的作业调度方法的又一种流程示意图。
图6为本发明实施例所提供的作业调度装置的一种方框示意图。
图标:100-电子设备;10-作业调度装置;11-作业解析模块;12-资源计算模块;13-机房选择模块;14-作业发布模块;20-存储器;30-处理器;40-通信单元。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本发明的描述中,需要说明的是,若出现术语“上”、“下”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,若出现术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
需要说明的是,在不冲突的情况下,本发明的实施例中的特征可以相互结合。
随着业务对数据处理实时性的要求不断提高,传统的离线计算方式已逐步被实时计算取代,而实时计算关注的点之一就是时延,在多机房,多网络的复杂环境下,想要满足用户对数据处理时间上的高要求,就需要关注数据来源、数据源的网络环境、数据输出之前的网络环境以及数据本身的波动情况。作为实时计算平台,需要综合不同的实时计算作业以及各种软硬件环境,对用户提交的实时计算作业进行合理的调度,最大程度上满足用户对数据处理时延的要求。
目前,实时计算作业的提交运行流程需要用户对数据的源头、输出以及计算资源所处的机房环境等信息有比较明确的了解,开发人员编写完实时计算的作业(如针对数据查询的程序代码)后,根据对作业的数据源和作业输出机房的了解,选择运行作业的机房和资源量,然后通过作业监控的指标衡量实时作业的消费情况,进一步调整作业运行参数,重新运行作业,再观察,直至作业稳定运行。
整个过程比较依赖作业开发人员的经验以及对公司基础架构环境资源的了解。但实际过程中,作业开发人员往往对公司的基础架构不熟悉,进而很难将作业调整到一个较优的程度。例如,当作业的数据源为kafka平台时,作业开发人员首先需要通过kafka平台了解作业相关的topic、topic所在的机房以及topic的数据量。其次,需要通过容器平台找到距离数据源机房较近的容器机房,然后根据数据源的大小和计算量的大小来调整作业运行参数,以使容器机房运行作业,整个过程中,作业开发人员关注的点太多,很难将作业调整到较优的状态。
并且,在实际过程中,作业开发人员更多关注的是自身的作业需求,开发人员为了提升数据处理能力,往往会使用比较多的计算资源,容易造成计算资源的浪费。选择运行作业的机房时,开发者无法从一个全局的角度去考虑,从而导致作业在多个机房分布不均衡,给机房的稳定性带来负面的影响。
除此之外,在现有的技术架构下,当需要进行机房迁移时,需要开发人员配合进行作业迁移,作业数量比较多的情况下,迁移成本较高。
基于上述研究,本实施例提供了一种作业调度方法、装置和电子设备,在提取作业对应的特征信息后,根据特征信息,计算得到运行作业所需的资源,根据运行作业所需的资源,确定运行作业的目标机房,通过目标机房运行作业,避免了开发人员随意申请资源导致的资源浪费,提高了整体资源利用率,降低了实时作业的成本,并且通过采集作业的各种维度的特征信息,根据特征信息预估资源使用量以及选择运行作业的机房,降低开发人员作业调优的难度。
请参考图1,本实施例所提供的作业调度方法应用于图1所示的电子设备100,该电子设备100可以是,但不限于,平板电脑、笔记本电脑、超级移动个人计算机(ultra-mobilepersonal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)、物理服务器或者由多个物理服务器组成的服务器组,本实施例对电子设备100的具体类型不作任何限制。
如图1所示,电子设备100可以包括作业调度装置10、存储器20、处理器30以及通信单元40。
所述存储器20、处理器30以及通信单元40相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。存储器20中存储有作业调度装置10,所述作业调度装置10包括至少一个可以软件或固件(firmware)的形式存储于所述存储器20中的软件功能模块,所述处理器30通过运行存储在存储器20内的软件程序以及模块(如本发明实施例中的作业调度装置10),执行各种功能应用以及数据处理,实现本发明实施例中的作业调度方法。
其中,所述存储器20可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。其中,存储器20用于存储程序,所述处理器30在接收到执行指令后,执行所述程序。
所述处理器30可能是一种集成电路芯片,具有数据的处理能力。所述处理器30还可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等,可以实现或者执行本发明实施例中公开的各方法、步骤及逻辑框图。通用处理器还可以是微处理器或者该处理器也可以是任何常规的处理器等。
通信单元40用于通过网络建立电子设备100与其他设备之间的通信连接,实现数据的收发操作。例如,电子设备100可以通过网络与容器平台通信,获取各机房的信息,又例如,电子设备100可以通过网络与数据平台(如kafka平台)通信,获取作业的数据源信息。
所述网络可以是,但不限于,有线网络或无线网络。所述电子设备100的操作***可以是,但不限于,安卓(Android)***、IOS(iPhone operating system)***、Windowsphone***、Windows***等。
可以理解,图1所示的结构仅为示意,电子设备100还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。
基于图1的架构,请结合参阅图2,图2为本实施例所提供的作业调度方法的一种流程示意图,该方法由图1所示的电子设备100执行,下面对图2所示的流程示意图进行详细阐述。
步骤S10:对作业进行解析,得到作业对应的特征信息。
步骤S20:根据特征信息,计算得到运行作业所需的资源。
步骤S30:根据运行作业所需的资源,确定运行作业的目标机房。
步骤S40:将作业提交到目标机房,以使目标机房运行作业。
其中,作业可由开发人员进行编写,作业可以是对数据的查询、对数据的更改、对数据的删除等等,具体地可根据实际情况进行编写,本实施例不做限制。开发人员在编写作业的同时,编写作业的特征信息,因此,开发人员在编写完作业后,编写完的作业包括作业的特征信息。而在将作业提交到电子设备,电子设备对该作业进行解析,即可提取该作业对应的特征信息。
在提取到作业对应的特征信息后,可以根据特征信息,得到运行作业所需的资源,然后根据运行作业所需的资源,确定运行作业的目标机房,在确定目标机房后,则可以将作业提交至目标机房,使目标机房运行该作业。
本实施例所提供的作业调度方法,通过提取作业对应的特征信息,根据特征信息,计算得到运行作业所需的资源,根据运行作业所需的资源,确定运行作业的目标机房,通过目标机房运行作业,避免了开发人员随意申请资源导致的资源浪费,提高了整体资源利用率,降低了实时作业的成本,并且通过采集作业的特征信息,根据特征信息计算资源需求以及选择运行作业的机房,降低了开发人员作业调优的难度。
可选的,为了提高作业运行的效率,在本实施例中,可采用Flink框架运行作业,Flink是一个面向数据流处理和批量数据处理的可分布式的开源计算框架,能够支持流处理和批处理两种应用类型。为了便于开发人员的操作,开发人员可采用flink sql语句编写作业,通过sql语句编写作业的特征信息,一方面,便于开发人员操作,另一方面,也可以便于电子设备对开发人员提交的flink sql作业进行解析以及特征提取,提高工作效率。
在一种实施方式中,作业的特征信息可以为作业的类型特征,电子设备可以预先存储类型特征与所需资源的对应关系,根据对应关系,得到运行作业所需的资源。例如,作业的类型可以是查询、修改、删除以及增加等,其中,查询类型的作业对应资源A,修改类型的作业对应资源B,删除类型的作业对应资源C,增加类型的作业对应资源D。当电子设备在提取得到作业的特征信息后,得到作业的类型为查询类型时,根据对应关系,可以得到计算该作业所需的资源为A,进而根据资源A,确定计算作业的目标机房,其中,目标机房为满足所需资源的机房。
为了降低作业运行参数的调优难度,本实施例中,作业的特征信息包括作业消费的数据源的信息(数据源的ID、地址等)、作业的输出信息(作业输出的ID、地址等)、计算作业所需要的算子以及时延需求等各种维度的特征。通过采集作业的各种维度的特征,根据各种维度的特征计算得到运行作业所需的资源以及目标机房,有效降低了开发人员作业运行参数的调优难度。
可选的,请结合参阅图3,在本实施例中,根据各种维度的特征,计算得到运行作业所需的资源的步骤包括步骤S21至步骤S23。
步骤S21:根据数据源的信息,查询得到数据源的输出速率。
步骤S22:根据每个类型的算子的个数以及每个类型的算子的复杂度系数,计算得到计算逻辑复杂度。
步骤S23:根据输出速率以及计算逻辑复杂度,计算得到运行作业所需的资源。
其中,数据源的信息可以是数据源的ID、标识信息等。在提取得到数据源的信息后,可以根据数据源的信息,在数据平台(如kafka平台)查询得到数据源的输出速率,数据源的输出速率,即表征作业的输入速率。
可选的,在本实施例中,算子的类型包括源算子、map算子、reduce算子、aggregate算子、join算子等,算子的类型以及每个类型的算子的个数由开发人员进行编写,每个类型的算子的复杂度系数可以预先设置并存储于电子设备中,也可以由开发人员在作业中进行设置。
当电子设备在对作业提取特征信息后,可得到作业所需的算子类型以及每个类型的复杂度系数和每个类型的算子的个数。然后根据每个类型的算子的个数以及每个类型的算子的复杂度系数,计算得到计算逻辑复杂度。其中,计算逻辑复杂度表征作业的复杂度。
可选的,计算逻辑复杂度可通过以下公式计算得到:
B=W1N1+W2N2+…+WiNi;
其中,B为计算逻辑复杂度,Wi表示第i个类型的算子的复杂度系数,Ni表示第i个类型的算子的个数。
在得到计算逻辑复杂度和数据源的输出速率后,根据输出速率以及计算逻辑复杂度,可计算得到运行作业所需的资源。
可选的,在本实施例中,资源包括资源容量,资源容量包括CPU核数以及内存;根据输出速率以及计算逻辑复杂度,计算得到运行作业所需的资源的步骤包括:
根据输出速率以及计算逻辑复杂度,计算得到目标CPU核数。
根据目标CPU核数计算得到目标内存。
根据目标内存以及目标CPU核数,得到运行作业所需的资源容量。
其中,目标CPU核数为运行作业时所需要的CPU核数,目标内存为运行作业时所需要的内存。
在本实施例中,根据输出速率以及计算逻辑复杂度,可通过以下公式计算得到目标CPU核数:
其中,X为目标CPU核数;A为数据源的输出速率;S为单核单复杂度的数据消费速率,可通过测试得到;B为计算逻辑复杂度;C为核数调整参数,C为常数,可以根据CPU内核的处理能力调整,处理能力越强,C越大。
在本实施例中,可预先编写测试代码程序,对单核单复杂度的数据消费速率进行测试,从而得到单核单复杂度的数据消费速率的值。
在通过上述公式计算得到目标CPU核数之后,即可根据目标CPU核数计算得到目标内存。
其中,目标内存M=N*X,N为常数,一般为1.5;X为CPU核数。
在计算得到目标CPU核数和目标内存后,即得到了运行作业所需的资源容量,作业所需的资源容量采用U(X,M)进行表示。
在得到作业所需的资源容量后,即可选择满足所需资源容量的机房作为目标机房,使目标机房运行作业。
由于实际应用中,在对作业进行处理计算时,大多是从数据源获取数据,然后执行计算逻辑,将计算结果输出到指定的数据存储位置,由指定的数据存储位置进行处理(输出或者存储)。因此,为了降低作业的成本,避免资源的浪费,本实施例从全局的角度考虑作业运行的环境和运行参数,选择满足作业所需资源容量且单位时间内产生的成本最低的机房为目标机房。
请结合参阅图4,根据作业所需的资源,确定运行作业的目标机房的步骤可以包括步骤S31至步骤S36。
步骤S31:获取当前各个机房的剩余资源容量。
步骤S32:根据数据源的信息,查询得到数据源所在的源机房。
步骤S33:根据作业的输出信息,查询得到作业的输出机房。
步骤S34:获取源机房到各个机房的网络延迟以及带宽单价。
步骤S35:获取各个机房到输出机房的网络延迟以及带宽单价。
步骤S36:根据剩余资源容量、源机房到各个机房的网络延迟以及带宽单价、各个机房到输出机房的网络延迟以及带宽单价、时延需求以及资源容量,计算得到目标机房。
其中,各个机房的信息存储于容器平台,容器平台用于对各机房进行管理。各个机房的信息可以包括各个机房的总资源容量、当前剩余资源容量、各个机房的放置位置信息、各个机房之间网络延迟以及带宽单价等。
在一种实施方式中,提取的特征信息中可以包括数据源的信息以及作业的输出信息,数据源的信息包括数据源的ID、地址等标识信息,作业的输出信息包括作业输出的ID、地址等标识信息。在计算得到运行作业所需的资源后,根据数据源的信息以及作业的输出信息生成查询请求,然后将查询请求发送至容器平台,请求查询数据源所在的源机房以及作业的输出机房。容器平台在收到查询请求后,根据数据源的信息,查询得到数据源所在的源机房,根据作业的输出信息,查询得到作业的输出机房,其中,作业的输出机房表征接收作业运行结果的机房。当目标机房运行作业时,目标机房从源机房中获取数据,目标机房在获取数据后,运行计算逻辑,得到运行结果,然后将运行结果输出到输出机房。
在可选的实施方式中,作业的输出机房和源机房可以为同一机房,作业的数据源和作业的输出可以为同一机房的不同存储区域。
在一种实施方式中,提取的特征信息也可以直接包括作业的输出机房。
在查询得到数据源所在的源机房以及作业的输出机房后,则可以从容器平台查询得到源机房到各个机房的网络延迟以及带宽单价、各个机房到输出机房的网络延迟以及带宽单价以及当前各个机房的剩余资源容量。然后根据当前各个机房的剩余资源容量、源机房到各个机房的网络延迟以及带宽单价、各个机房到输出机房的网络延迟以及带宽单价、时延需求以及所需资源容量,计算得到满足时延需求以及资源容量,且运行作业时单位时间内产生成本最低的目标机房。
为了便于目标机房的计算,在本实施例中,将计算目标机房的问题,转换为机房选择的最优化问题,进而可通过以下公式计算得到目标机房:
其中,F(Rs→Rk)表示从源机房Rs到第k个机房Rk的带宽单价(元/MB);F(Rk→Rd)表示从第k个机房Rk到输出机房Rd的带宽单价(元/MB);A表示源机房的输出速率,E表示输出机房的输入速率;URk(X,M)表示第k个机房的剩余资源容量;U(X,M)表示所需的资源容量;D(expect)表示时延需求,D(work)表示作业引入的延迟,由计算窗口的大小决定;D(Rs→Rk)表示源机房Rs到第k个机房Rk的网络延迟;D(Rk→Rd)表示从第k个机房Rk到输出机房Rd的网络延迟,r为目标机房。
通过求解上述公式,即可得到最佳的目标机房r,即满足时延需求以及资源容量,且单位时间内产生成本最低的机房。
需要说明的是,在本实施例中,源机房的输出速率表征作业的输入速率,输出机房的输入速率表征作业的输出速率,源机房的输出速率以及输出机房的输入速率,可根据数据源的信息以及作业的输出信息,从数据平台中查询得到。
在本实施例中,第k个机房可以是源机房,也可以是输出机房。当第k个机房为源机房时,即k=s时,源机房Rs到第k个机房Rk的带宽单价F(Rs→Rk)为0,源机房Rs到第k个机房Rk的网络延迟D(Rs→Rk)为0;当第k个机房为输出机房时,即k=d时,第k个机房Rk到输出机房Rd的带宽单价F(Rk→Rd)为0,第k个机房Rk到输出机房Rd的网络延迟D(Rk→Rd)为0。可选的,在源机房或者输出机房的资源容量等情况满足时,计算得到的目标机房可以是源机房,也可以是输出机房。
在计算得到目标机房后,即可将作业提交到目标机房,使目标机房运行该作业。为了避免资源的浪费,在本实施例中,资源还包括实例个数以及实例规格,请结合参阅图5,将作业提交到目标机房的步骤包括步骤S41至步骤S42。
步骤S41:获取与实例规格相同的多个目标实例;其中,目标实例的个数与实例个数相同。
步骤S42:将各目标实例以及作业提交到目标机房,以使目标机房根据各目标实例,运行作业。
其中,实例指的是提供云计算的最小单位,根据CPU和内存的配置可以分为不同的规格。
在本实施例中,实例个数以及实例规格可通过以下步骤计算得到:
根据源算子的个数,得到实例个数。
根据目标内存、CPU核数以及实例个数计算得到实例规格。
其中,实例个数等于源算子的个数,即实例个数P等于源算子的个数NIS。实例规格Uj(X,M)=U(X,M)/P,U(X,M)为资源容量,X为CUP核数,M为目标内存,P为实例个数。
在计算得到实例规格以及实例个数后,即可向容器平台获取与计算得到的实例规格相同的目标实例,而目标实例的个数则与计算得到的实例个数相同。
在获取得到各目标实例后,将各目标实例以及作业提交到目标机房,以使目标机房根据各目标实例,运行作业,可以避免开发人员随意申请资源导致的资源浪费,提高了整体资源的利用率。
在目标机房运行作业的过程中,为了实时掌握作业的运行状态,在本实施例中,作业调度方法还可以包括:
对目标机房运行作业的运行过程进行监控,采集运行过程中的监控指标,根据监控指标判断作业运行过程中是否发生异常,若判定发生异常,进行告警提示。
其中,监控指标可以是数据消费指标,设备的运行指标等,具体地可根据实际情况而设置。
在本实施例中,电子设备预先存储有监控指标的标准值,在运行作业时,通过采集运行过程中的监控指标,将运行过程中的监控指标与预先存储的监控指标的标准值进行对比,若对比结果超过设定范围,则判定作业运行过程中发生异常,进行自动恢复并向运维人员发送告警提示;若对比结果为超出设定范围,则继续进行监控,采集运行过程中的监控指标。
本实施例所提供的作业调度方法,通过采集运行过程中的监控指标,可向提供作业运维相关的监控视图,帮助运维人员实时掌握作业的运行状态。
本实施例所提供的作业调度方法,通过采集作业各种维度的特征信息,根据各种维度的特征信息计算资源需求以及选择运行作业的机房,降低了开发人员作业调优的难度。从全局的角度考虑作业运行的环境和运行参数,避免了开发人员随意申请资源导致的资源浪费,提高了整体资源利用率,降低了实时作业的成本。当需要迁移实时计算作业时,比如数据源进行了迁移或者容器机房需要搬迁,电子设备可以采集新机房的信息,对作业进行快速迁移。
基于同一发明构思,请结合参阅图6,本实施例还提供一种作业调度装置10,应用于图1所示的电子设备100,该作业调度装置10包括作业解析模块11、资源计算模块12、机房选择模块13以及作业发布模块14。
作业解析模块11用于对作业进行解析,得到作业对应的特征信息。
资源计算模块12用于根据特征信息,计算得到计算运行作业所需的资源。
机房选择模块13用于根据运行作业所需的资源,确定运行作业的目标机房。
作业发布模块14用于将作业提交到目标机房,以使目标机房运行作业。
在可选的实施方式中,特征信息包括作业消费的数据源的信息、算子的类型以及每个类型的算子的个数;资源计算模块12用于:
根据数据源的信息,查询得到数据源的输出速率。
根据每个类型的算子的个数以及每个类型的算子的复杂度系数,计算得到计算逻辑复杂度。
根据输出速率以及计算逻辑复杂度,计算得到运行作业所需的资源。
在可选的实施方式中,资源包括资源容量;资源计算模块12用于:
根据输出速率以及计算逻辑复杂度,计算得到目标CPU核数。
根据目标CPU核数计算得到目标内存。
根据目标内存以及目标CPU核数,得到运行作业所需的资源容量。
在可选的实施方中,资源计算模块12用于通过以下公式计算得到目标CPU核数:
其中,X为目标CPU核数;A为所述输出速率;S为单核单复杂度的数据消费速率;B为计算逻辑复杂度;C为常数。
在可选的实施方式中,特征信息还包括时延需求以及作业的输出信息,机房选择模块13用于:
获取当前各个机房的剩余资源容量。
根据数据源的信息,查询得到数据源所在的源机房。
根据作业的输出信息,查询得到作业的输出机房。
获取源机房到各个机房的网络延迟以及带宽单价。
获取各个机房到输出机房的网络延迟以及带宽单价。
根据剩余资源容量、源机房到各个机房的网络延迟以及带宽单价、各个机房到输出机房的网络延迟以及带宽单价、时延需求以及资源容量,计算得到目标机房。
在可选的实施方式中,机房选择模块13用于通过以下公式计算得到目标机房:
其中,F(Rs→Rk)表示从源机房Rs到第k个机房Rk的带宽单价;F(Rk→Rd)表示从第k个机房Rk到输出机房Rd的带宽单价;A表示源机房的输出速率,E表示输出机房的输入速率;URk(X,M)表示第k个机房的剩余资源容量;U(X,M)表示资源容量;D(expect)表示时延需求,D(work)表示作业引入的延迟;D(Rs→Rk)表示源机房Rs到第k个机房Rk的网络延迟;D(Rk→Rd)表示从第k个机房Rk到输出机房Rd的网络延迟。
在可选的实施方式中,资源还包括实例个数以及实例规格;作业发布模块14用于:
获取与实例规格相同的多个目标实例;其中,目标实例的个数与实例个数相同。
将各目标实例以及作业提交到所述目标机房,以使目标机房根据各目标实例,运行作业。
在可选的实施方式中,所述算子的类型包括源算子;资源计算模块12用于还用:
根据源算子的个数,得到实例个数。
根据目标内存、CPU核数以及实例个数计算得到实例规格。
在可选的实施方式中,作业调度装置10还可以包括运维监控模块,运维监控模块用于对目标机房运行作业的运行过程进行监控,采集运行过程中的监控指标,根据监控指标判断作业运行过程中是否发生异常,若判定发生异常,进行告警提示。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述应用于作业调度方法对应的工作过程,在此不再过多赘述。
在上述基础上,本实施例还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现前述实施方式任意一项所述的作业调度方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的电子设备的具体工作过程,可以参考前述应用于作业调度方法对应的工作过程,在此不再过多赘述。
综上所述,本实施例提供作业调度方法、装置和电子设备,通过提取作业对应的特征信息,根据特征信息,计算得到运行作业所需的资源,根据运行作业所需的资源,确定运行作业的目标机房,通过目标机房运行作业,实现了从全局的角度考虑作业运行的环境和运行参数,避免了开发人员随意申请资源导致的资源浪费,提高了整体资源利用率,降低了实时作业的成本,并且通过采集作业各种维度的特征信息,根据特征信息计算资源需求以及选择运行作业的机房,降低了开发人员作业调优的难度。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (5)
1.一种作业调度方法,其特征在于,所述方法包括:
对作业进行解析,得到所述作业对应的特征信息;
根据所述特征信息,计算得到运行所述作业所需的资源;
根据运行所述作业所需的资源,确定运行所述作业的目标机房;
将所述作业提交到所述目标机房,以使所述目标机房运行所述作业;
所述特征信息包括作业消费的数据源的信息、算子的类型以及每个类型的算子的个数;所述根据所述特征信息,计算得到运行所述作业所需的资源的步骤包括:
根据所述数据源的信息,查询得到所述数据源的输出速率;
根据每个类型的算子的个数以及每个类型的算子的复杂度系数,计算得到计算逻辑复杂度;
根据所述输出速率以及所述计算逻辑复杂度,计算得到运行所述作业所需的资源;
所述资源包括资源容量;所述根据所述输出速率以及所述计算逻辑复杂度,计算得到运行所述作业所需的资源的步骤包括:
根据所述输出速率以及所述计算逻辑复杂度,计算得到目标CPU核数;
根据所述目标CPU核数计算得到目标内存;
根据所述目标内存以及所述目标CPU核数,得到运行所述作业所需的资源容量;
所述根据所述输出速率以及所述计算逻辑复杂度,计算得到目标CPU核数的步骤包括:
通过以下公式计算得到所述目标CPU核数:
其中,X为目标CPU核数;A为所述输出速率;S为单核单复杂度的数据消费速率;B为计算逻辑复杂度;C为常数;
所述特征信息还包括时延需求以及所述作业的输出信息,所述根据运行所述作业所需的资源,确定运行所述作业的目标机房的步骤包括:
获取当前各个机房的剩余资源容量;
根据所述数据源的信息,查询得到所述数据源所在的源机房;
根据所述作业的输出信息,查询得到所述作业的输出机房;
获取所述源机房到各个机房的网络延迟以及带宽单价;
获取各个机房到所述输出机房的网络延迟以及带宽单价;
根据所述剩余资源容量、所述源机房到各个机房的网络延迟以及带宽单价、所述各个机房到所述输出机房的网络延迟以及带宽单价、所述时延需求以及所述资源容量,计算得到所述目标机房;
所述计算得到所述目标机房的步骤包括:
通过以下公式计算得到目标机房:
其中,F(Rs→Rk)表示从源机房Rs到第k个机房Rk的带宽单价;F(Rk→Rd)表示从第k个机房Rk到输出机房Rd的带宽单价;A表示源机房的输出速率,E表示输出机房的输入速率;URk(X,M)表示第k个机房的剩余资源容量;U(X,M)表示资源容量;D(expect)表示时延需求,D(work)表示作业引入的延迟;D(Rs→Rk)表示源机房Rs到第k个机房Rk的网络延迟;D(Rk→Rd)表示从第k个机房Rk到输出机房Rd的网络延迟。
2.根据权利要求1所述的作业调度方法,其特征在于,所述资源还包括实例个数以及实例规格;所述将所述作业提交到所述目标机房的步骤包括:
获取与所述实例规格相同的多个目标实例;其中,所述目标实例的个数与所述实例个数相同;
将各所述目标实例以及所述作业提交到所述目标机房,以使所述目标机房根据各所述目标实例,运行所述作业。
3.根据权利要求2所述的作业调度方法,其特征在于,所述算子的类型包括源算子;所述方法还包括计算得到所述实例个数以及实例规格的步骤;该步骤包括:
根据所述源算子的个数,得到所述实例个数;
根据所述目标内存、所述CPU核数以及所述实例个数计算得到所述实例规格。
4.一种作业调度装置,其特征在于,包括作业解析模块、资源计算模块、机房选择模块以及作业发布模块;
所述作业解析模块用于对作业进行解析,得到所述作业对应的特征信息;
所述资源计算模块用于根据所述特征信息,计算得到所述作业所需的资源;
所述机房选择模块用于根据运行所述作业所需的资源,确定运行所述作业的目标机房;
所述作业发布模块用于将所述作业提交到所述目标机房,以使所述目标机房运行所述作业;
所述特征信息包括作业消费的数据源的信息、算子的类型以及每个类型的算子的个数;所述根据所述特征信息,所述资源计算模块用于:根据所述数据源的信息,查询得到所述数据源的输出速率;根据每个类型的算子的个数以及每个类型的算子的复杂度系数,计算得到计算逻辑复杂度;根据所述输出速率以及所述计算逻辑复杂度,计算得到运行所述作业所需的资源;
所述资源包括资源容量,所述资源计算模块用于:根据所述输出速率以及所述计算逻辑复杂度,计算得到目标CPU核数;根据所述目标CPU核数计算得到目标内存;根据所述目标内存以及所述目标CPU核数,得到运行所述作业所需的资源容量;
所述资源计算模块用于通过以下公式计算得到目标CPU核数:
其中,X为目标CPU核数;A为所述输出速率;S为单核单复杂度的数据消费速率;B为计算逻辑复杂度;C为常数;
所述特征信息还包括时延需求以及所述作业的输出信息,所述机房选择模块用于:获取当前各个机房的剩余资源容量;根据所述数据源的信息,查询得到所述数据源所在的源机房;根据所述作业的输出信息,查询得到所述作业的输出机房;获取所述源机房到各个机房的网络延迟以及带宽单价;获取各个机房到所述输出机房的网络延迟以及带宽单价;根据所述剩余资源容量、所述源机房到各个机房的网络延迟以及带宽单价、所述各个机房到所述输出机房的网络延迟以及带宽单价、所述时延需求以及所述资源容量,计算得到所述目标机房;
所述机房选择模块用于通过以下公式计算得到目标机房:
其中,F(Rs→Rk)表示从源机房Rs到第k个机房Rk的带宽单价;F(Rk→Rd)表示从第k个机房Rk到输出机房Rd的带宽单价;A表示源机房的输出速率,E表示输出机房的输入速率;URk(X,M)表示第k个机房的剩余资源容量;U(X,M)表示资源容量;D(expect)表示时延需求,D(work)表示作业引入的延迟;D(Rs→Rk)表示源机房Rs到第k个机房Rk的网络延迟;D(Rk→Rd)表示从第k个机房Rk到输出机房Rd的网络延迟。
5.一种电子设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现权利要求1-3任意一项所述的作业调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110113631.4A CN112817713B (zh) | 2021-01-27 | 2021-01-27 | 作业调度方法、装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110113631.4A CN112817713B (zh) | 2021-01-27 | 2021-01-27 | 作业调度方法、装置和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112817713A CN112817713A (zh) | 2021-05-18 |
CN112817713B true CN112817713B (zh) | 2023-10-13 |
Family
ID=75859727
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110113631.4A Active CN112817713B (zh) | 2021-01-27 | 2021-01-27 | 作业调度方法、装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112817713B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117575654B (zh) * | 2023-11-27 | 2024-05-14 | 数翊科技(北京)有限公司 | 数据加工作业的调度方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109951558A (zh) * | 2019-03-27 | 2019-06-28 | 北京并行科技股份有限公司 | 一种超算资源的云调度方法、云调度中心和*** |
CN109960582A (zh) * | 2018-06-19 | 2019-07-02 | 华为技术有限公司 | 在tee侧实现多核并行的方法、装置及*** |
CN110012062A (zh) * | 2019-02-22 | 2019-07-12 | 北京奇艺世纪科技有限公司 | 一种多机房任务调度方法、装置及存储介质 |
CN110673941A (zh) * | 2019-09-27 | 2020-01-10 | 掌阅科技股份有限公司 | 多机房中微服务的迁移方法、电子设备及存储介质 |
CN111782466A (zh) * | 2020-06-28 | 2020-10-16 | 京东数字科技控股有限公司 | 一种大数据任务资源利用检测方法及装置 |
-
2021
- 2021-01-27 CN CN202110113631.4A patent/CN112817713B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109960582A (zh) * | 2018-06-19 | 2019-07-02 | 华为技术有限公司 | 在tee侧实现多核并行的方法、装置及*** |
CN110012062A (zh) * | 2019-02-22 | 2019-07-12 | 北京奇艺世纪科技有限公司 | 一种多机房任务调度方法、装置及存储介质 |
CN109951558A (zh) * | 2019-03-27 | 2019-06-28 | 北京并行科技股份有限公司 | 一种超算资源的云调度方法、云调度中心和*** |
CN110673941A (zh) * | 2019-09-27 | 2020-01-10 | 掌阅科技股份有限公司 | 多机房中微服务的迁移方法、电子设备及存储介质 |
CN111782466A (zh) * | 2020-06-28 | 2020-10-16 | 京东数字科技控股有限公司 | 一种大数据任务资源利用检测方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112817713A (zh) | 2021-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111835582B (zh) | 物联网巡检设备的配置方法、装置、计算机设备 | |
CN109218133B (zh) | 网络速度测试***、方法、装置及计算机可读存储介质 | |
WO2019153487A1 (zh) | ***性能的度量方法、装置、存储介质和服务器 | |
JP4677813B2 (ja) | サーバ性能計測方法及びサーバ性能計測システム並びにこれらに用いるコンピュータプログラム | |
US10223397B1 (en) | Social graph based co-location of network users | |
JP2008225995A (ja) | ポリシ作成支援方法、ポリシ作成支援システム、およびプログラム | |
CN110163457A (zh) | 一种业务指标的异常定位方法和装置 | |
CA3230388A1 (en) | Method of and device for monitoring business data, method of and device for generating rule data, and system | |
CN110046081A (zh) | 性能测试方法、性能测试装置、电子设备及存储介质 | |
CN112817713B (zh) | 作业调度方法、装置和电子设备 | |
CN110908789A (zh) | 面向多源数据处理的可视化数据配置方法及*** | |
CN110162386B (zh) | 一种任务下发方法及装置 | |
WO2019028114A1 (en) | RESEARCH AND INVENTORY IN CLOUD | |
KR102543838B1 (ko) | 정보 획득 방법 및 장치 | |
CN111897706A (zh) | 服务器性能预测方法、装置、计算机***和介质 | |
CN114202256A (zh) | 架构升级预警方法、装置、智能终端及可读存储介质 | |
CN113504996A (zh) | 一种负载均衡检测方法、装置、设备及存储介质 | |
CN107193749B (zh) | 测试方法、装置及设备 | |
EP4184343A1 (en) | Information processing system, information processing method and information processing program | |
CN112966971B (zh) | 一种项目工作量评估方法和装置 | |
CN114116924A (zh) | 基于图谱数据的数据查询方法、图谱数据构建方法和装置 | |
CN112560938A (zh) | 模型训练方法、装置及计算机设备 | |
CN112596974A (zh) | 一种全链路监控方法、装置、设备和存储介质 | |
CN111177640A (zh) | 一种数据中心运维工作绩效评价*** | |
CN111159988A (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 |