CN113419839A - 多类型作业的资源调度方法、装置、电子设备及存储介质 - Google Patents

多类型作业的资源调度方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN113419839A
CN113419839A CN202110817955.6A CN202110817955A CN113419839A CN 113419839 A CN113419839 A CN 113419839A CN 202110817955 A CN202110817955 A CN 202110817955A CN 113419839 A CN113419839 A CN 113419839A
Authority
CN
China
Prior art keywords
resource
containers
jobs
node
type
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
Application number
CN202110817955.6A
Other languages
English (en)
Inventor
钱瀚
史少晨
师锐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing ByteDance Network Technology Co Ltd
Original Assignee
Beijing ByteDance Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing ByteDance Network Technology Co Ltd filed Critical Beijing ByteDance Network Technology Co Ltd
Priority to CN202110817955.6A priority Critical patent/CN113419839A/zh
Publication of CN113419839A publication Critical patent/CN113419839A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本公开涉及一种多类型作业的资源调度方法、装置、电子设备及存储介质,该方法包括:资源管理器接收资源调度请求,资源管理器响应资源调度请求为目标作业的各类型作业分配资源容器,并返回资源容器分配结果至作业对应的应用管理器,资源容器分配结果包括为各类型作业分配的资源容器的标识信息以及所在节点的节点信息;应用管理器向节点信息指示的节点的NM发送标识信息以使NM基于标识信息启动相应的资源容器从而运行目标作业的多种类型作业。本实施例方案在作业请求资源时,可支持对作业所属的多种类型作业同时提出资源请求,可以对多类型作业统一进行资源分配,无需按照多类型作业所需最大资源的倍数进行分配,从而减少了资源浪费。

Description

多类型作业的资源调度方法、装置、电子设备及存储介质
技术领域
本公开涉及计算机技术领域,尤其涉及一种多类型作业的资源调度方法,多类型作业的资源调度装置,以及实现多类型作业的资源调度方法的电子设备及计算机可读存储介质。
背景技术
YARN(Yet Another Resource Negotiator,另一种资源协调器)是一种通用的资源管理系统,可以为MapReduce(一种编程模型)、Spark(一种为大规模数据处理而设计的快速通用的计算引擎)等多种计算框架提供资源管理和分配。YARN由RM(Resource Manager,资源管理器)和多个NM(Node Manager,节点管理器)组成,RM负责对各个NM上的资源进行管理和调度。Container(资源容器)是YARN中的资源抽象,封装了一个NM上的多维度资源,如内存、CPU(CentralProcessing Unit,中央处理单元)、磁盘、网络等。通过向RM申请,由RM选择合适的NM分配并启动Container,来执行相应的作业。
TensorFlow(一个基于数据流编程的符号数学架构)、PyTorch(一种开源的机器学习库)等机器学习框架作为一种特殊的计算框架,也可以运行于YARN上。这些机器学习框架存在各种各样的类型作业,满足不同的功能,例如PS(Parameter Server,参数服务器)、Worker(执行器)、Evaluator(监督器)等,这些类型作业所需的资源往往是不一样的,例如PS可能需要大内存、Worker需要GPU(Graphics Processing Unit,图形处理单元)等。
但是,目前的机器学习框架不允许用户自定义多类型作业,如果需要把这些类型作业运行于上述基于YARN的机器学习框架上,会造成大量的资源浪费。以PS需要100G的内存和10核的CPU,不需要GPU,Worker需要10G的内存、10核的CPU和1个GPU为例,假设某个作业任务需要1个PS和1个Worker,目前的方式需要取两个类型作业所需的最大资源的两倍,即200G的内存、20核的CPU和2个GPU的资源,才能顺利运行这个任务。一个作业包含的类型作业越多,所需的资源差异就越大,所造成的资源浪费也就越高。
发明内容
本公开实施例的目的在于提供一种多类型作业的资源调度方法、多类型作业的资源调度装置,实现多类型作业的资源调度方法的电子设备及计算机可读存储介质,旨在实现作业的多类型作业运行的同时,减少资源浪费。
第一方面,本公开提供了一种多类型作业的资源调度方法,包括:
资源管理器RM接收资源调度请求,所述资源调度请求包含归属于目标作业的多种类型作业所需的资源容器数量;
资源管理器RM响应所述资源调度请求,为所述多种类型作业分别分配资源容器,并将资源容器分配结果发送至所述目标作业对应的应用管理器AM,所述资源容器分配结果包括为各所述类型作业分配的资源容器的标识信息以及所在节点的节点信息;
所述AM向所述节点信息指示的节点的节点管理器NM发送所述资源容器的标识信息,以使所述NM基于所述标识信息启动相应的所述资源容器从而运行所述目标作业的多种类型作业。
可选的,在本公开的一些实施例中,所述资源容器分配结果还包括为各所述类型作业分配的资源容器数量,所述方法还包括:
所述AM判断各所述类型作业分配的所述资源容器数量是否满足所需的资源容器数量;
若不满足,则向所述资源管理器发送资源请求,以请求分配不满足的类型作业所需的剩余资源容器,直到满足所需的资源容器数量。
可选的,在本公开的一些实施例中,所述方法还包括:
在所述AM判定各所述类型作业分配的所述资源容器数量满足所需的资源容器数量时,返回所述AM向所述节点信息指示的节点的节点管理器NM发送所述资源容器的标识信息的步骤。
可选的,在本公开的一些实施例中,所述方法还包括:
在向所述资源管理器发送资源请求时,开始计时;
在计时时长大于预设时长后,若所述不满足的类型作业所对应已分配的所述资源容器数量依然不满足所需的资源容器数量,则释放各所述类型作业各自已分配的所述资源容器。
可选的,在本公开的一些实施例中,所述资源调度请求还包含各所述类型作业对应的不同优先级,所述方法还包括:
在所述AM判定各所述类型作业分配的所述资源容器数量不满足所需的资源容器数量时,判断不满足的类型作业是否有至少两个;
在判定不满足的类型作业有至少两个时,所述AM基于不满足的每个类型作业的优先级和所需的剩余资源容器数量分别生成预设资源请求;
所述AM将不满足的每个类型作业对应的所述预设资源请求发送至所述RM;
所述RM响应每个所述预设资源请求,基于不满足的每个类型作业各自对应的优先级和所需的剩余资源容器数量分配资源容器;其中,优先级高的类型作业优先分配得到对应的资源容器。
可选的,在本公开的一些实施例中,所述节点信息至少包括节点名称,节点IP地址和节点唯一标识中的一个或多个。
第二方面,本公开实施例提供一种多类型作业的资源调度装置,所述装置包括:
作业处理模块,用于使资源管理器接收资源调度请求,所述资源调度请求包含归属于目标作业的多种类型作业所需的资源容器数量;
资源分配处理模块,用于使资源管理器响应所述资源调度请求,为所述多种类型作业分别分配资源容器,并将资源容器分配结果发送至所述目标作业对应的应用管理器AM,所述资源容器分配结果包括为各所述类型作业分配的资源容器的标识信息以及所在节点的节点信息;
作业运行控制模块,用于使所述AM向所述节点信息指示的节点的节点管理器NM发送所述资源容器的标识信息,以使所述NM基于所述标识信息启动相应的所述资源容器从而运行所述目标作业的多种类型作业。
可选的,在本公开的一些实施例中,所述资源容器分配结果还包括为各所述类型作业分配的资源容器的数量,所述装置还包括:
资源判断模块,用于在所述作业运行控制模块使所述应用管理器向所述节点信息指示的节点的节点管理器NM发送所述资源容器的标识信息之前,使所述应用管理器判断各所述类型作业已分配的所述资源容器数量是否满足所需的资源容器数量;
所述资源分配处理模块,还用于在所述资源判断模块的判断结果是不满足时,向所述资源管理器发送资源请求,以请求分配不满足的类型作业所需的剩余资源容器,直到满足所需的资源容器数量。
第三方面,本公开实施例提供一种电子设备,包括处理器和存储介质,所述存储介质存储有能够被所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面任一实施例所述的多类型作业的资源调度方法。
第四方面,本公开实施例提供一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序在被处理器调用和执行时实现如上述第一方面任一实施例所述的多类型作业的资源调度方法。
本公开实施例提供的技术方案与现有技术相比具有如下优点:
本公开实施例提供的多类型作业的资源调度方法、装置、存储介质和电子设备,资源管理器接收资源调度请求,所述资源调度请求包含归属于目标作业的多种类型作业所需的资源容器数量,资源管理器响应资源调度请求,为各所述类型作业分配资源容器,并返回资源容器分配结果至目标作业对应的应用管理器AM,所述资源容器分配结果包括为各所述类型作业分配的资源容器的标识信息以及所在节点的节点信息;所述AM向所述节点信息指示的节点的节点管理器NM发送所述资源容器的标识信息,以使所述NM基于所述标识信息启动相应的所述资源容器从而运行所述目标作业的多种类型作业。这样,在作业请求资源时,支持对目标作业所属的多种类型作业同时提出资源请求,RM可以对多类型作业统一进行资源分配,无需按照多类型作业所需的最大资源的倍数进行分配,从而减少了资源浪费。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本公开实施例的多类型作业的资源调度方法流程示意图;
图2为本公开另一实施例的多类型作业的资源调度方法流程示意图;
图3为本公开又一实施例的多类型作业的资源调度方法流程示意图;
图4为本公开实施例YARN架构下的多类型作业的资源调度方法的交互流程图;
图5为本公开实施例多类型作业的资源调度装置示意图;
图6为本公开实施例的电子设备的结构示意图。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
本公开实施例提供了一种多类型作业的资源调度方法、多类型作业的资源调度装置、实现多类型作业的资源调度方法的电子设备及计算机可读存储介质。下面首先对多类型作业的资源调度方法进行说明。该多类型作业的资源调度方法可以应用于YARN资源调度管理平台。
如图1所示,本公开实施例提供的一种多类型作业的资源调度方法,可以包括如下步骤:
步骤S101:资源管理器RM接收资源调度请求,所述资源调度请求包含归属于目标作业的多种类型作业所需的资源容器数量。
示例性的,客户端(Client)是YARN中的客户端,供用户提交作业。作业即一个应用程序,作业如果实现一个总的计算任务,类型作业可以理解为实现所述总的计算任务的一个子任务的作业。在YARN中,用户通过客户端提交作业到RM后,RM会为该作业创建对应的应用管理器AM(ApplicationMaster),也称应用程序管理器。AM负责管理这个作业。本实施例中,用户在提交一个目标作业时,可以配置作业指示信息,作业指示信息可以包括目标作业对应包含的多种类型作业的标识如名称等,以及多种类型作业所需的资源容器数量。例如类型作业role1所需的资源容器(Container)数量是1cpu、1G内存。类型作业role2所需的资源容器数量是2cpu、2G内存。而类型作业role3所需的资源容器数量是3cpu、3G内存,此处仅为举例说明,本实施例中并不限于此。
具体的,AM获取目标作业携带的作业指示信息,即获取该目标作业的多种类型作业所需的资源容器数量,基于每种类型作业所需的资源容器数量生成资源调度请求,资源调度请求包含归属于目标作业的多种类型作业所需的资源容器数量,例如类型作业role1对应的1cpu 1G内存的资源容器数量,类型作业role2对应的2cpu 2G内存的资源容器数量,类型作业role3对应的3cpu 3G内存的资源容器数量。生成之后可以将资源调度请求发送给RM。
步骤S102:RM响应资源调度请求,为所述多种类型作业分别分配资源容器,并将资源容器分配结果发送至目标作业对应的AM,资源容器分配结果包括为各类型作业分配的资源容器的标识信息以及所在节点的节点信息。
具体的,RM接收到AM发送的上述资源调度请求之后,响应资源调度请求以为各所述类型作业分配资源容器,集群各个节点的NM会通过心跳向RM汇报各节点的资源使用情况,RM基于各节点的资源使用情况具体为各所述类型作业分配资源容器。分配完成后发送资源容器分配结果至AM。
示例性的,资源容器分配结果可以包括为各所述类型作业分配的资源容器所在节点的节点信息以及资源容器的标识信息。该资源容器即初始分配的资源容器,节点信息至少可以包括但不限于节点名称(如节点1、节点2等),节点IP地址和节点唯一标识如唯一ID中的一个或多个。例如为类型作业role2初始分配的资源容器在节点1和节点2上,初始分配的资源容器的标识信息以是但不限于资源容器的唯一ID或名称等等,例如节点1上分配的资源容器的标识信息是编码1,节点2上分配的资源容器的标识信息是编码2,以便AM识别区分类型作业role2初始分配的资源容器,此处仅为举例说明并不限于此。
步骤S103:所述AM向所述节点信息指示的节点的节点管理器NM发送所述资源容器的标识信息,以使所述NM基于所述标识信息启动相应的所述资源容器从而运行所述目标作业的多种类型作业。
具体的,AM向例如节点1和节点2的NM发送资源容器的标识信息,作为示例,例如向节点1发送编码1,向节点2发送编码2,节点1的NM基于编码1启动标识为编码1的资源容器,节点2的NM基于编码2启动标识为编码2的资源容器,从而实现运行所述目标作业的类型作业role2,其他类型作业的运行也是相同的方式。
应用本公开上述实施例提供的方案,在作业请求资源时,支持对目标作业所属的多种类型作业同时提出资源请求,RM可以对多类型作业统一进行资源分配,无需按照多类型作业所需的最大资源的倍数进行分配,从而减少了资源浪费。
可选的,在本公开的一些实施例中,所述资源容器分配结果还包括为各所述类型作业分配的资源容器数量,结合参考图2中所示,所述方法还可以包括以下步骤:
步骤S201:所述AM判断各所述类型作业分配的所述资源容器数量是否满足所需的资源容器数量。
具体的,RM为各所述类型作业初始分配资源容器之后,向AM返回的资源容器分配结果可以包括为各类型作业初始分配的资源容器数量,AM可以判断各类型作业初始分配的资源容器数量是否满足各类型作业运行所需的资源容器数量。
步骤S202:若不满足,则向所述资源管理器发送资源请求,以请求分配不满足的类型作业所需的剩余资源容器,直到满足所需的资源容器数量。
具体的,若判断某个类型作业初始分配的资源容器数量不满足该类型作业运行所需的资源容器数量,则AM继续向RM发送资源请求,以为该不满足的类型作业继续申请资源,由于已经初始分配了部分资源容器,因此资源请求中携带不满足的类型作业所需的剩余资源容器数量。例如类型作业A运行需要10个资源容器,初始分了6个资源容器,还差4个资源容器,因此AM可以继续向RM发送需要剩余4个资源容器的资源请求,以为类型作业A继续申请资源。
RM基于资源请求为例如类型作业A再次分配资源,返回资源响应消息到AM,资源响应消息包括为不满足的类型作业如类型作业A再次分配的资源容器所在目标节点的节点信息以及再次分配的资源容器的标识信息。例如为类型作业A再次分配的资源容器所在的目标节点是节点4,再次分配的资源容器的标识信息是节点4上的编码3,即编码2标识的资源容器。
AM向例如节点4的NM发送再次分配的资源容器的标识信息如编码3,节点4的NM基于编码3启动编码3标识的资源容器,从而实现运行类型作业A。
本实施例中的上述方案,对类型作业已分配的资源容器数量进行判断,如果不够,则向RM继续请求资源,这样,只要有类型作业的Container数量不够就会重新请求资源,进而保证了多类型作业的运行,并且在为目标作业请求资源时,支持对多种类型作业同时提出请求,RM可以对多类型作业统一进行资源分配,无需按照多类型作业所需的最大资源的倍数进行分配,从而减少了资源浪费。
可选的,在本公开的一些实施例中,所述方法还可以包括:在所述AM判定各所述类型作业分配的所述资源容器数量满足所需的资源容器数量时,返回所述AM向所述节点信息指示的节点的节点管理器NM发送所述资源容器的标识信息的步骤,即返回步骤S103。也即在为各类型作业初始分配的资源容器满足运行各类型作业所需的资源容器数量时,无需重新请求资源,可以直接运行各类型作业。
可选的,在本公开的一些实施例中,所述方法还可以包括以下步骤:
步骤a):在向应用管理器发送资源请求时,开始计时。
例如,在上述步骤S202中向RM首次发送资源请求时,开始计时。
步骤b):在计时时长大于预设时长后,若所述不满足的类型作业所对应已分配的所述资源容器数量依然不满足所需的资源容器数量,则释放各所述类型作业各自已分配的所述资源容器。
示例性的,预设时长可以根据需要设置,本实施例中对此不作限制。计时时长大于预设时长后,例如不满足的类型作业A所对应已分配的Container数量依然不满足所需的Container数量,说明在一定时长内一直没法满足类型作业A运行所需的Container数量。若在一定时长内不满足所需Container数量要求时,可以结束当前的资源请求并释放已获得的这些Container资源,避免死锁,提高系统运行稳定性和可靠性。
可选的,在本公开的一些实施例中,所述资源调度请求还包含各所述类型作业对应的不同优先级,该优先级可以由用户提交目标作业时自定义配置,且各类型作业对应的优先级不同。结合参考图3中所示,所述方法还可以包括以下步骤:
步骤S301:在所述AM判定各所述类型作业分配的所述资源容器数量不满足所需的资源容器数量时,判断不满足的类型作业是否有至少两个。
步骤S302:在判定不满足的类型作业有至少两个时,所述AM基于不满足的每个类型作业的优先级和所需的剩余资源容器数量分别生成预设资源请求。
具体的,也即在不满足的类型作业有多个时,在为该多个类型作业再次申请资源时,可以获取各个类型作业的优先级,基于不满足的每个类型作业的优先级和所需的剩余资源容器数量分别生成预设资源请求,即该预设资源请求除了携带类型作业所需的剩余资源容器数量,还携带类型作业的优先级信息。
步骤S303:所述AM将不满足的每个类型作业对应的所述预设资源请求发送至所述RM。
具体的,生成上述预设资源请求之后,AM即可发送上述预设资源请求到RM以请求资源。
步骤S304:所述RM响应每个所述预设资源请求,基于不满足的每个类型作业各自对应的优先级和所需的剩余资源容器数量分配资源容器;其中,优先级高的类型作业优先分配得到对应的资源容器。
具体的,RM响应每个所述预设资源请,为不满足的每个类型作业分配资源容器,具体分配过程可以参考上述实施例中的详细描述,此处不再赘述。本实施例中,RM在资源容器分配时,优先级高的类型作业优先分配得到对应的Container。
本实施例的上述方案,在作业请求资源时,支持对多种类型作业同时提出请求,RM可以对多类型作业统一进行资源分配,无需按照多类型作业所需的最大资源的倍数进行分配,从而减少了资源浪费。同时,基于用户定义的优先级可以为优先级高的类型作业优先分配Container,支持更为丰富的调度策略,资源调度灵活性较好。
本公开实施例方案的整体架构如图4所示,用户可以通过客户端Client提交作业到资源管理器即RM,作业携带作业指示信息,该作业指示信息包括不同类型作业的类型信息如标识以及每种类型作业所需的Container数量。RM在一个节点上为作业创建对应的应用程序管理器即AM,作业指示信息传递给AM。AM根据作业指示信息生成资源调度请求,向RM发送资源调度请求,该资源调度请求中携带针对每种类型作业预先设置的优先级以及所需的Container数量,RM会相应的分配资源,返回初始资源响应消息给AM,初始资源响应消息中携带有分配给每种类型作业的Container标识信息和Container所在节点的节点信息,AM根据节点信息,向对应的各目标节点(如附图4中的节点管理器1、2、3)分别发送各类型作业对应的Container标识信息,各目标节点在接收到Container标识信息后,各自启动其中的对应Container(附图4中的资源容器)。
以类型作业PS需要100G的内存和10核的CPU,不需要GPU;类型作业Worker需要10G的内存、10核的CPU和1个GPU为例,假设某个作业任务需要1个PS和1个Worker。传统的方法中,需要取两个类型作业所需的最大资源的两倍,即200G的内存、20核的CPU和2个GPU的资源,才能顺利运行这个任务。采用本公开实施例的方法,可以使用110G的内存、20核的CPU、1个GPU可以运行该任务。相比于不支持多类型作业的情况,在该作业任务上,能够节省90G的内存和1个GPU,减少了资源浪费,且类型作业越多,能够得到的收益就越高。
基于上述实施例,为了便于理解,下面结合一个具体例子对本公开的多类型作业的资源调度方法进行介绍。
假设某个作业需要10个类型作业1、每个类型作业1需要1核的CPU和1G的内存;还需要5个类型作业2、每个类型作业2需要2核的CPU和2G的内存;还需要3个类型作业3、每个类型作业3需要3核的CPU和3G的内存。
AM在获知上述需求后,构造资源调度请求,并将构造的资源调度请求发送给RM,资源调度请求包含:10个1核CPU和1G内存的请求,优先级为1;5个2核CPU和2G内存的请求,优先级为2;3个3核CPU和3G内存的请求,优先级为3。
如果RM返回的资源容器分配结果包括了3个Container,其中给优先级为1的分配了2个Container,给优先级为2的分配了1个Container。表示还需要8个优先级为1的Container、4个优先级为2的Container和3个优先级为3的Container。
AM会继续向RM请求资源,继续发送资源请求,重新发送的资源请求包含:8个1核CPU和1G内存的请求,优先级为1;4个2核CPU和2G内存的请求,优先级为2;3个3核CPU和3G内存的请求,优先级为3。
AM通过不断的向RM请求资源,直至获取到所有类型作业所需全部的Container,此时可以启动各类型作业。
基于同一发明构思,本公开实施例还提供了一种多类型作业的资源调度装置,如图5所示,该装置可以包括作业处理模块501、资源分配处理模块502和作业运行控制模块503:
其中,作业处理模块501,用于使资源管理器接收资源调度请求,所述资源调度请求包含归属于目标作业的多种类型作业所需的资源容器数量。
资源分配处理模块502,用于使资源管理器响应所述资源调度请求,为所述多种类型作业分别分配资源容器,并将资源容器分配结果发送至所述目标作业对应的应用管理器AM,所述资源容器分配结果包括为各所述类型作业分配的资源容器的标识信息以及所在节点的节点信息。
作业运行控制模块503,用于使所述AM向所述节点信息指示的节点的节点管理器NM发送所述资源容器的标识信息,以使所述NM基于所述标识信息启动相应的所述资源容器从而运行所述目标作业的多种类型作业。
应用本公开实施例提供的方案,在作业请求资源时,支持对作业所属的多种类型作业同时提出资源请求,RM可以对多类型作业统一进行资源分配,无需按照多类型作业所需的最大资源的倍数进行分配,从而减少了资源浪费。
可选的,在本公开的一些实施例中,可选的,在本公开的一些实施例中,所述资源容器分配结果还包括为各所述类型作业分配的资源容器的数量,所述装置还包括:资源判断模块,用于在所述作业运行控制模块使所述应用管理器向所述节点信息指示的节点的节点管理器NM发送所述资源容器的标识信息之前,使所述应用管理器判断各所述类型作业已分配的所述资源容器数量是否满足所需的资源容器数量。所述资源分配处理模块,还用于在所述资源判断模块的判断结果是不满足时,向所述资源管理器发送资源请求,以请求分配不满足的类型作业所需的剩余资源容器,直到满足所需的资源容器数量。
可选的,在本公开的一些实施例中,所述资源判断模块使得AM判定各所述类型作业分配的所述资源容器数量满足所需的资源容器数量时,触发所述作业运行控制模块工作,使所述AM向所述节点信息指示的节点的节点管理器NM发送所述资源容器的标识信息。
可选的,在本公开的一些实施例中,所述装置还可以包括计时模块和资源释放模块。其中,计时模块用于在向所述资源管理器发送资源请求时,开始计时。资源释放模块用于在计时模块的计时时长大于预设时长后,若所述不满足的类型作业所对应已分配的所述资源容器数量依然不满足所需的资源容器数量,则释放各所述类型作业各自已分配的所述资源容器。
可选的,在本公开的一些实施例中,所述资源调度请求还包含各所述类型作业对应的不同优先级,所述装置还可包括:
类型数量判断模块,用于在资源判断模块使所述AM判定各所述类型作业分配的所述资源容器数量不满足所需的资源容器数量时,判断不满足的类型作业是否有至少两个;在判定不满足的类型作业有至少两个时,所述AM基于不满足的每个类型作业的优先级和所需的剩余资源容器数量分别生成预设资源请求;所述AM将不满足的每个类型作业对应的所述预设资源请求发送至所述RM;所述RM响应每个所述预设资源请求,基于不满足的每个类型作业各自对应的优先级和所需的剩余资源容器数量分配资源容器;其中,优先级高的类型作业优先分配得到对应的资源容器。
可选的,在本公开的一些实施例中,所述节点信息至少可以包括但不限于节点名称,节点IP地址和节点唯一标识中的一个或多个。
本公开实施例还提供了一种电子设备,如图6所示,电子设备60可包括处理器601和存储介质602,存储介质602存储有能够被处理器601执行的计算机程序,处理器601执行该计算机程序时实现如上述本公开实施例所提供的多类型作业的资源调度方法。
应用本公开实施例提供的方案,在作业请求资源时,支持对目标作业所属的多种类型作业同时提出资源请求,RM可以对多类型作业统一进行资源分配,无需按照多类型作业所需的最大资源的倍数进行分配,从而减少了资源浪费。
上述存储介质可以包括RAM(Random Access Memory,随机存取存储器),也可以包括NVM(Non-volatile Memory,非易失性存储器),例如至少一个磁盘存储器。可选的,存储介质还可以是至少一个位于远离前述处理器的存储装置。
上述处理器可以是通用处理器,包括CPU、NP(Network Processor,网络处理器)等;还可以是DSP(Digital Signal Processor,数字信号处理器)、ASIC(ApplicationSpecific Integrated Circuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
存储介质602与处理器601之间可以通过有线连接或者无线连接的方式进行数据传输,并且计算机设备与其他设备之间可以通过有线通信接口或者无线通信接口进行通信。图6所示的仅为通过总线进行数据传输的示例,不作为具体连接方式的限定。
另外,本公开实施例提供了一种计算机可读存储介质,该存储介质存储有计算机程序,该计算机程序在被处理器调用和执行时实现如上述本公开实施例所提供的多类型作业的资源调度方法。
在本公开实施例还提供了一种计算机程序产品,当其在计算机上运行时,使得计算机执行如上述本公开实施例所提供的多类型作业的资源调度方法。
对于多类型作业的资源调度装置、电子设备和存储介质实施例而言,由于其涉及的方法内容基本相似于前述的方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本公开实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、DSL(Digital Subscriber Line,数字用户线))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如软盘、硬盘、磁带)、光介质(例如DVD(DigitalVersatile Disc,数字多功能光盘))、或者半导体介质(例如SSD(Solid State Disk,固态硬盘))等。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种多类型作业的资源调度方法,其特征在于,所述方法包括:
资源管理器接收资源调度请求,所述资源调度请求包含归属于目标作业的多种类型作业所需的资源容器数量;
所述资源管理器响应所述资源调度请求,为所述多种类型作业分别分配资源容器,并将资源容器分配结果发送至所述目标作业对应的应用管理器,所述资源容器分配结果包括为各所述类型作业分配的资源容器的标识信息以及所在节点的节点信息;
所述应用管理器向所述节点信息指示的节点的节点管理器NM发送所述资源容器的标识信息,以使所述NM基于所述标识信息启动相应的所述资源容器从而运行所述目标作业的多种类型作业。
2.根据权利要求1所述的方法,其特征在于,所述资源容器分配结果还包括为各所述类型作业分配的资源容器数量,所述应用管理器向所述节点信息指示的节点的节点管理器NM发送所述资源容器的标识信息之前,方法还包括:
所述应用管理器判断各所述类型作业已分配的所述资源容器数量是否满足所需的资源容器数量;
若不满足,则向所述资源管理器发送资源请求,以请求分配不满足的类型作业所需的剩余资源容器,直到满足所需的资源容器数量。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在所述应用管理器判定各所述类型作业分配的所述资源容器数量满足所需的资源容器数量时,返回所述应用管理器向所述节点信息指示的节点的节点管理器NM发送所述资源容器的标识信息的步骤。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在向所述资源管理器发送资源请求时,开始计时;
在计时时长大于预设时长后,若所述不满足的类型作业所对应已分配的所述资源容器数量依然不满足所需的资源容器数量,则释放各所述类型作业各自已分配的所述资源容器。
5.根据权利要求2~4任一项所述的方法,其特征在于,所述资源调度请求还包含各所述类型作业对应的优先级,所述方法还包括:
在所述应用管理器判定各所述类型作业分配的所述资源容器数量不满足所需的资源容器数量时,判断不满足的类型作业是否有至少两个;
在判定不满足的类型作业有至少两个时,所述应用管理器基于不满足的每个类型作业的优先级和所需的剩余资源容器数量分别生成预设资源请求;
所述应用管理器将不满足的每个类型作业对应的所述预设资源请求发送至所述资源管理器;
所述资源管理器响应每个所述预设资源请求,基于不满足的每个类型作业各自对应的优先级和所需的剩余资源容器数量分配资源容器;其中,优先级高的类型作业优先分配得到对应的资源容器。
6.根据权利要求1~3任一项所述的方法,其特征在于,所述节点信息至少包括节点名称,节点IP地址和节点唯一标识中的一个或多个。
7.一种多类型作业的资源调度装置,其特征在于,所述装置包括:
作业处理模块,用于使资源管理器接收资源调度请求,所述资源调度请求包含归属于目标作业的多种类型作业所需的资源容器数量;
资源分配处理模块,用于使资源管理器响应所述资源调度请求,为所述多种类型作业分别分配资源容器,并将资源容器分配结果发送至所述目标作业对应的应用管理器,所述资源容器分配结果包括为各所述类型作业分配的资源容器的标识信息以及所在节点的节点信息;
作业运行控制模块,用于使所述应用管理器向所述节点信息指示的节点的节点管理器NM发送所述资源容器的标识信息,以使所述NM基于所述标识信息启动相应的资源容器从而运行所述目标作业的多种类型作业。
8.根据权利要求7所述的装置,其特征在于,所述资源容器分配结果还包括为各所述类型作业分配的资源容器的数量,所述装置还包括:
资源判断模块,用于在所述作业运行控制模块使所述应用管理器向所述节点信息指示的节点的节点管理器NM发送所述资源容器的标识信息之前,使所述应用管理器判断各所述类型作业已分配的所述资源容器数量是否满足所需的资源容器数量;
所述资源分配处理模块,还用于在所述资源判断模块的判断结果是不满足时,向所述资源管理器发送资源请求,以请求分配不满足的类型作业所需的剩余资源容器,直到满足所需的资源容器数量。
9.一种电子设备,其特征在于,包括处理器和存储介质,所述存储介质存储有能够被所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1-6中任一项所述的多类型作业的资源调度方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序在被处理器调用和执行时实现如权利要求1-6中任一项所述的多类型作业的资源调度方法。
CN202110817955.6A 2021-07-20 2021-07-20 多类型作业的资源调度方法、装置、电子设备及存储介质 Pending CN113419839A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110817955.6A CN113419839A (zh) 2021-07-20 2021-07-20 多类型作业的资源调度方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110817955.6A CN113419839A (zh) 2021-07-20 2021-07-20 多类型作业的资源调度方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN113419839A true CN113419839A (zh) 2021-09-21

Family

ID=77721418

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110817955.6A Pending CN113419839A (zh) 2021-07-20 2021-07-20 多类型作业的资源调度方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN113419839A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114168292A (zh) * 2021-12-09 2022-03-11 中国建设银行股份有限公司 一种资源调度方法、装置、设备和介质
CN116820727A (zh) * 2023-07-19 2023-09-29 杭州星云智慧科技有限公司 一种任务处理方法、装置、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104780146A (zh) * 2014-01-13 2015-07-15 华为技术有限公司 资源管理方法及装置
WO2017113074A1 (zh) * 2015-12-28 2017-07-06 华为技术有限公司 一种资源的分配方法、装置和系统
CN107203424A (zh) * 2017-04-17 2017-09-26 北京奇虎科技有限公司 一种在分布式集群中调度深度学习作业的方法和装置
CN111045795A (zh) * 2018-10-11 2020-04-21 浙江宇视科技有限公司 资源调度方法及装置
CN111694649A (zh) * 2020-06-12 2020-09-22 北京字节跳动网络技术有限公司 资源调度方法、装置、计算机设备和存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104780146A (zh) * 2014-01-13 2015-07-15 华为技术有限公司 资源管理方法及装置
WO2017113074A1 (zh) * 2015-12-28 2017-07-06 华为技术有限公司 一种资源的分配方法、装置和系统
CN107203424A (zh) * 2017-04-17 2017-09-26 北京奇虎科技有限公司 一种在分布式集群中调度深度学习作业的方法和装置
CN111045795A (zh) * 2018-10-11 2020-04-21 浙江宇视科技有限公司 资源调度方法及装置
CN111694649A (zh) * 2020-06-12 2020-09-22 北京字节跳动网络技术有限公司 资源调度方法、装置、计算机设备和存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114168292A (zh) * 2021-12-09 2022-03-11 中国建设银行股份有限公司 一种资源调度方法、装置、设备和介质
CN116820727A (zh) * 2023-07-19 2023-09-29 杭州星云智慧科技有限公司 一种任务处理方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN109302483B (zh) 一种应用程序的管理方法及系统
US8302103B2 (en) System and method for managing resources of applications and threads performed on java virtual machine
US10701139B2 (en) Life cycle management method and apparatus
KR100509794B1 (ko) 데이터베이스 관리시스템을 이용하는 작업들의 실시간 처리를 위한 스케줄링 방법
CN110941481A (zh) 资源调度方法、装置及系统
CN109379448B (zh) 一种文件分布式部署方法、装置、电子设备及存储介质
US8046759B2 (en) Resource allocation method and system
WO2021227999A1 (zh) 云计算服务系统和方法
JP2014520346A5 (zh)
CN113419839A (zh) 多类型作业的资源调度方法、装置、电子设备及存储介质
WO2018049873A1 (zh) 一种应用调度方法及装置
WO2018107945A1 (zh) 一种实现硬件资源分配的方法、装置及存储介质
US11301284B2 (en) Method for managing VNF instantiation and device
CN112162852A (zh) 一种多架构cpu节点的管理方法、装置及相关组件
CN113377498A (zh) 资源调度方法、装置、电子设备及存储介质
CN110659131A (zh) 任务处理方法、电子装置、计算机设备及存储介质
CN111124674B (zh) 一种硬件资源的管理方法、存储介质及终端
JP5790758B2 (ja) スケジューリング方法およびスケジューリングシステム
CN111163140A (zh) 资源获取和分配的方法、装置和计算机可读存储介质
CN116185623A (zh) 任务分配方法、装置、电子设备及存储介质
WO2014154045A1 (zh) 多内核操作系统实现方法和实现装置及系统
CN113391925A (zh) 云资源管理方法、系统、介质、计算机设备
CN113094172A (zh) 应用于分布式存储系统的服务器管理方法和装置
CN113391906B (zh) 作业更新方法、装置、计算机设备及资源管理系统
CN115878333A (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