CN113377498A - 资源调度方法、装置、电子设备及存储介质 - Google Patents
资源调度方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113377498A CN113377498A CN202110702487.8A CN202110702487A CN113377498A CN 113377498 A CN113377498 A CN 113377498A CN 202110702487 A CN202110702487 A CN 202110702487A CN 113377498 A CN113377498 A CN 113377498A
- Authority
- CN
- China
- Prior art keywords
- resource
- job
- containers
- node
- manager
- 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
Images
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/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; 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/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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Factory Administration (AREA)
Abstract
本公开涉及一种资源调度方法、装置、电子设备和存储介质,方法包括:资源管理器接收携带作业运行所需的资源容器数量的资源请求,响应资源请求并将资源分配结果发送至作业的应用管理器,该分配结果包括为作业分配的资源容器所在节点的节点信息和资源容器信息;应用管理器基于资源分配结果与对应节点的节点管理器通信以启动分配的资源容器;应用管理器判断已启动的资源容器数量是否满足作业运行所需的资源容器数量;若是则向所有已启动的资源容器发送作业运行指令以运行作业。这样只有在已启动的资源容器数量满足作业所需资源容器数量的情况下,才会启动运行作业,从而能够保证作业拿到全部的资源之后才刚性拉起作业,实现了YARN上的刚性调度。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种资源调度方法、资源调度装置、实现资源调度方法的电子设备和计算机可读存储介质。
背景技术
YARN(Yet Another Resource Negotiator,另一种资源协调器)是一种通用的资源管理***,可以为MapReduce(一种编程模型)、Spark(一种为大规模数据处理而设计的快速通用的计算引擎)等多种计算框架提供资源管理和分配。YARN由RM(Resource Manager,资源管理器)和多个NM(Node Manager,节点管理器)组成,RM负责对各个NM上的资源进行管理和调度。Container(资源容器)是YARN中的资源抽象,封装了一个NM上的多维度资源,如内存、CPU(Central Processing Unit,中央处理单元)、磁盘、网络等。通过向RM申请,由RM选择合适的NM分配并启动Container,来执行相应的作业。
TensorFlow(一个基于数据流编程的符号数学架构)、PyTorch(一种开源的机器学习库)等机器学习框架作为一种特殊的计算框架,也可以运行于YARN上。机器学习框架的一个常见需求就是刚性调度,即一个作业需要获取到所有的资源之后才可以运行。
但是,目前YARN上无法做到刚性调度,尤其是出现多个作业同时运行的需求时,目前YARN的资源分配策略会使得每个作业只能拿到一部分资源,导致这些作业都不能正常运行。
发明内容
本公开实施例的目的在于提供一种资源调度方法、资源调度装置、实现资源调度方法的电子设备和计算机可读存储介质,以实现YARN上的刚性调度。
第一方面,本公开提供了一种资源调度方法,该方法包括:
资源管理器接收资源请求,所述资源请求携带作业运行所需的资源容器数量;
资源管理器响应所述资源请求,并将资源分配结果发送至所述作业对应的应用管理器,所述资源分配结果包括为所述作业分配的资源容器所在节点的节点信息和资源容器信息;
所述应用管理器向所述节点信息指示的节点的节点管理器发送所述资源容器信息,以使所述节点管理器启动分配的资源容器;
所述应用管理器判断已启动的所述资源容器数量是否满足所述作业运行所需的资源容器数量;
若满足,则应用管理器向所有已启动的所述资源容器发送作业运行指令,以运行所述作业。
可选的,在本公开的一些实施例中,所述方法还包括:
当已启动的所述资源容器数量不满足所述作业运行所需的资源容器数量时,所述应用管理器向所述资源管理器发送新的资源请求;
所述资源管理器响应所述新的资源请求返回新的资源分配结果至所述应用管理器,所述新的资源分配结果包括为所述作业分配的新的资源容器所在节点的节点信息和新的资源容器信息;
所述应用管理器向所述新的资源容器所在节点的节点信息指示的目标节点的节点管理器发送所述新的资源容器信息,以使所述目标节点的节点管理器启动分配的新的资源容器;
所述应用管理器判断当前时刻已启动的所述资源容器数量是否满足所述作业运行所需的资源容器数量;
若满足,则所述应用管理器向当前时刻所有已启动的所述资源容器发送所述作业运行指令。
可选的,在本公开的一些实施例中,所述方法还包括:
若应用管理器判断当前时刻已启动的所述资源容器数量依然不满足所述作业运行所需的资源容器数量,则返回所述应用管理器向所述资源管理器发送新的资源请求的步骤,直至满足所述作业运行所需的资源容器数量时结束。
可选的,在本公开的一些实施例中,所述方法还包括:
若超过预设时长为所述作业已启动的所述资源容器数量都不满足所述作业运行所需的资源容器数量,则所述应用管理器释放为所述作业所有已启动的资源容器退出。
可选的,在本公开的一些实施例中,所述方法还包括:
所述应用管理器周期性地向所述节点管理器发送心跳信息,所述心跳信息携带有分配的所述资源容器是否已全部启动的消息;
所述应用管理器向所有已启动的所述资源容器发送作业运行指令的步骤,包括:
在向所述节点管理器发送的心跳信息中携带分配的所述资源容器已全部启动的信息,以使所有已启动的所述资源容器运行所述作业。
第二方面,本公开实施例提供一种资源调度装置,所述装置包括:
请求接收模块,用于使资源管理器接收资源请求,所述资源请求携带作业运行所需的资源容器数量;
第一资源分配模块,用于使所述资源管理器响应所述资源请求,并将资源分配结果发送至所述作业对应的应用管理器,所述资源分配结果包括为所述作业分配的资源容器所在节点的节点信息和资源容器信息;
资源启动模块,用于使所述应用管理器向所述节点信息指示的节点的节点管理器发送所述资源容器信息,以使所述节点管理器启动分配的资源容器;
资源判断模块,用于使所述应用管理器判断已启动的所述资源容器数量是否满足所述作业运行所需的资源容器数量;
作业运行模块,用于在所述资源判断模块的判断结果是满足时,使应用管理器向所有已启动的所述资源容器发送作业运行指令,以运行所述作业。
可选的,在本公开的一些实施例中,所述装置还包括:
资源申请模块,用于当已启动的所述资源容器数量不满足所述作业运行所需的资源容器数量时,使所述应用管理器向所述资源管理器发送新的资源请求;
第二资源分配模块,用于使所述资源管理器响应所述新的资源请求返回新的资源分配结果至所述应用管理器,所述新的资源分配结果包括为所述作业分配的新的资源容器所在节点的节点信息和新的资源容器信息;
所述资源启动模块,还用于使所述应用管理器向所述新的资源容器所在节点的节点信息指示的目标节点的节点管理器发送所述新的资源容器信息,以使所述目标节点的节点管理器启动分配的新的资源容器;
所述资源判断模块,还用于使所述应用管理器判断当前时刻已启动的所述资源容器数量是否满足所述作业运行所需的资源容器数量;
所述作业运行模块,还用于在所述资源判断模块在当前时刻的判断结果是满足时,使应用管理器向当前时刻所有已启动的所述资源容器发送所述作业运行指令。
可选的,在本公开的一些实施例中,所述装置还包括:
资源申请控制模块,用于若应用管理器判断当前时刻已启动的所述资源容器数量依然不满足所述作业运行所需的资源容器数量,则触发所述资源申请模块向所述资源管理器发送新的资源请求,直至满足所述作业运行所需的资源容器数量时结束。
可选的,在本公开的一些实施例中,所述装置还包括:
资源释放模块,用于若超过预设时长为所述作业已启动的所述资源容器数量都不满足所述作业运行所需的资源容器数量,则使所述应用管理器释放为所述作业所有已启动的资源容器退出。
可选的,在本公开的一些实施例中,所述装置还包括:
心跳信息发送模块,用于使所述应用管理器周期性地向所述节点管理器发送心跳信息,所述心跳信息携带有分配的所述资源容器是否已全部启动的消息;
所述作业运行模块,用于使应用管理器向所有已启动的所述资源容器发送作业运行指令,具体包括:
在向所述节点管理器发送的心跳信息中携带分配的所述资源容器已全部启动的信息,以使所有已启动的所述资源容器运行所述作业。
第三方面,本公开提供了一种电子设备,包括处理器和存储介质,存储介质存储有能够被处理器执行的可执行指令,处理器被可执行指令促使实现如本公开第一方面所提供实施例的资源调度方法。
第四方面,本公开提供了一种计算机可读存储介质,该存储介质存储有可执行指令,在被处理器调用和执行时实现如本公开第一方面所提供实施例的资源调度方法。
本公开实施例提供的技术方案与现有技术相比具有如下优点:
本公开实施例提供的资源调度方法、装置、电子设备和存储介质,作业对应的应用管理器在判断出为作业分配的且已启动的资源容器数量满足作业运行所需的资源容器数量时,才向所有已启动的资源容器发送作业运行指令,以运行作业。这样只有在已启动的资源容器数量满足作业关于作业资源容器数量的需求的情况下,才会告知所有已启动的资源容器运行作业,从而能够保证作业拿到全部的资源之后才刚性拉起作业,从而实现了YARN上的刚性调度。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本公开实施例的资源调度方法的流程示意图;
图2为本公开另一实施例的资源调度方法的流程示意图;
图3为本公开实施例的YARN架构下的交互流程图;
图4为本公开实施例的资源调度装置的结构示意图;
图5为本公开实施例的电子设备的结构示意图。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
在YARN集群***中,用户可通过客户端(Client)提交作业如机器学习框架,资源管理器RM为用户提交的作业创建用于管理所述作业的应用程序管理器AM(ApplicationManager),简称为应用管理器;应用管理器AM向所述资源管理器RM提出用于所述作业的资源申请;资源管理器RM根据各节点的资源使用信息,将若干节点上的资源容器Container分配给所述应用管理器AM;应用管理器AM获得所述资源管理器RM的资源容器分配结果后,与相应节点的节点管理器NM进行通信,在相应节点启动运行所述作业内的子任务,通常一个作业可以包含多个子任务。至此,作业完成了一个从提交到运行的完整流程。
本公开实施例提供了一种资源调度方法、资源调度装置,实现资源调度方法的电子设备及计算机可读存储介质。下面,首先对本公开实施例所提供的资源调度方法进行介绍。
本公开实施例所提供的资源调度方法可以应用于YARN集群***中。实现本公开实施例所提供的资源调度方法的方式可以为软件、硬件电路和逻辑电路中的至少一种。
如图1所示,本公开实施例提供了一种资源调度方法,可以包括如下步骤:
步骤S101:资源管理器接收资源请求,所述资源请求携带作业运行所需的资源容器数量。
示例性的,作业可以是机器学习训练任务,但不限于此。用户首先需要描述自己的机器学习训练任务需要拉起多少个子任务,每个子任务需要多少Container,即可确定作业运行所需的资源容器Container数量,该所需的资源容器Container数量可以随作业一并通过客户端提交至资源管理器RM,之后RM为作业创建对应的应用管理器AM。
AM用于管理作业的资源调度、运行管理等,AM基于所述作业运行所需的资源容器数量,构建资源请求并向所述RM发送资源请求,即RM接收资源请求。这些可以参考现有技术理解,此处不再赘述。
举例来说,机器学习训练所需子任务数量例如8个Worker(执行器),每个Worker需要10G的内存、10核的CPU、1个GPU(Graphics Processing Unit,图形处理单元)。也就是说,如果想要正常运行机器学习训练任务,总共需要8个Container,一个Container可以是指上述的10G的内存、10核的CPU和1个GPU。
步骤S102:资源管理器响应所述资源请求,并将资源分配结果发送至所述作业对应的应用管理器,所述资源分配结果包括为所述作业分配的资源容器所在节点的节点信息和资源容器信息。
具体的,AM可以根据上述机器学习训练任务的需求即所需的资源容器Container数量,向RM发送资源请求以申请资源,RM会分配资源并返回资源分配结果如Container分配结果到AM。Container分配结果包括Container所在节点的节点信息和Container信息。节点信息例如可以是节点名称、IP地址等,Container信息可以是Container标识信息,但也不限于此。例如分配的Container在节点名称为“节点1”的节点上,而Container标识信息是节点1上编号1~8指示的Container,此处仅为举例说明,不作具体限制,分配的Container也可以位于不同的节点上。
步骤S103:所述应用管理器向所述节点信息指示的节点的节点管理器发送所述资源容器信息,以使所述节点管理器启动分配的资源容器。
具体的,作为一个示例,AM可以向节点1的NM发送Container标识信息如编号1~8,节点1的NM基于编号1~8启动8个Container。
步骤S104:所述应用管理器判断已启动的所述资源容器数量是否满足所述作业运行所需的资源容器数量。
具体的,由于可用资源数量等限制,RM可能无法一次性分配足够的资源。因此AM需要判断例如节点1上启动的例如8个Container是否满足所述作业运行所需的资源容器Container数量。
步骤S105:若满足,则应用管理器向所有已启动的所述资源容器发送作业运行指令,以运行所述作业。
具体的,在启动的例如8个Container满足作业运行所需的资源容器Container数量时,AM向所有已启动的所述资源容器Container发送作业运行指令,以通知运行所述作业。
本公开上述实施例提供的资源调度方法,作业对应的AM在判断出为作业已启动的Container数量满足作业运行所需的Container数量时,才向所有已启动的Container发送作业运行指令,以运行作业。这样只有在已启动的Container数量满足作业关于作业Container数量的需求的情况下,才会告知所有已启动的Container运行作业,从而能够保证作业拿到全部的资源之后才刚性拉起作业,从而实现了YARN上的刚性调度。
可选的,在本公开的一些实施例中,结合参考图2中所示,所述方法还可包括以下步骤:
步骤S201:在所述AM判定已启动的所述资源容器数量不满足所述作业运行所需的资源容器数量时,AM向所述资源管理器RM发送新的资源请求。
具体的,例如RM返回的资源分配结果中包含例如节点1上的1个Container,则说明还需要7个Container才能正常运行机器学习训练的任务。步骤S103中例如启动1个Container之后,AM判定已启动的1个Container不满足所述作业运行所需的资源容器Container数量8,因此可以向所述资源管理器RM发送新的资源请求。
步骤S202:所述资源管理器RM响应所述新的资源请求返回新的资源分配结果至AM,所述新的资源分配结果包括为作业分配的新的资源容器所在节点的节点信息和新的资源容器信息。
具体的,RM基于新的资源请求继续分配Container,返回新的Container分配结果至AM。示例性的,新的Container分配结果包括新的Container所在节点的节点信息和新的Container信息。节点信息例如可以是节点名称、IP地址等,新的Container信息可以是Container标识信息,但也不限于此。例如分配的新的Container在节点名称为“节点2”的节点上,而Container标识信息是节点2上编号2~8指示的Container,此处仅为举例说明,不作具体限制,分配的Container也可以位于不同的节点上。
步骤S203:所述AM向所述新的资源容器所在节点的节点信息指示的目标节点的NM发送所述新的资源容器信息,以使所述目标节点的NM启动分配的新的资源容器。
作为一个示例,AM向节点2的NM发送所述新的资源容器Container信息如编号2~8,节点2的NM启动相应编号2~8指示的7个资源容器Container。
步骤S204:所述AM判断当前时刻已启动的所述资源容器数量是否满足所述作业运行所需的资源容器数量。
具体的,节点2的NM启动7个资源容器Container时,加上之前已经启动的节点1上的1个资源容器Container,总共启动了有8个资源容器Container,AM判断当前这8个资源容器Container是否满足所述作业运行所需的资源容器Container数量。
步骤S205:若满足,则AM向当前时刻所有已启动的所述资源容器发送所述作业运行指令。
具体的,由于作业运行所需的资源容器Container数量为8,因此满足,所以AM向所有已启动的所述资源容器Container如节点1上的1个Container和节点2上启动的7个资源容器Container发送作业运行指令,以启动运行作业。
在本实施例的上述方案中,AM若判断出为作业已启动的Container数量不能满足作业运行所需的Container数量,则会请求RM继续为作业分配Container,并在接收到RM继续返回的Container分配结果后,与相应NM通信以使NM启动继续分配的Container,直至已启动的Container数量满足作业关于作业运行所需的Container数量的需求时,才向所有已启动的Container发送作业运行命令以运行作业,从而能够保证作业拿到全部的资源之后才刚性拉起作业,从而实现了YARN上的刚性调度。
可选的,在上述实施例的基础上,本公开的一些实施例中,所述方法还可以包括:若AM判断当前时刻已启动的所述资源容器Container数量依然不满足所述作业运行所需的资源容器Container数量,则返回步骤S201中AM向资源管理器RM发送新的资源请求的步骤,直至满足所述作业运行所需的资源容器Container数量时结束。之后可以跳转执行步骤S205。这样,可以一直等待直至已启动的Container数量满足作业关于作业运行所需的Container数量的需求时,才向所有已启动的Container发送作业运行命令以运行作业,从而能够保证作业拿到全部的资源之后才刚性拉起作业,从而实现了YARN上的刚性调度。
可选的,在本公开的一些实施例中,所述方法还可以包括:若超过预设时长为所述作业已启动的所述资源容器Container数量都不满足所述作业运行所需的资源容器Container数量,则AM释放为所述作业所有已启动的资源容器Container退出。
示例性的,预设时长可以根据需要设置,对此不作限制。具体的,AM可以记录为上述作业向RM申请资源的持续时长,如果持续时长超过预设时长后,为作业已启动的Container数量还不满足作业运行所需的Container数量,则说明短时间内该作业都无法正常执行,为了防止资源死锁,提高其他等待作业可运行的几率,则AM会释放所有已启动的Container退出,这些Container被释放出来,可以分配给其他作业使用,从而能够减少集群中发生资源死锁的情况,提高集群运行稳定性和可靠性。
可选的,在本公开的一些实施例中,所述方法还可以包括:所述AM周期性地向所述NM发送心跳信息,所述心跳信息携带有分配的所述资源容器Container是否已全部启动的消息。相应的,步骤S105中应用管理器向所有已启动的所述资源容器发送作业运行指令的步骤,具体可包括:在向所述NM发送的心跳信息中携带分配的所述资源容器Container已全部启动的信息,以使所有已启动的所述资源容器Container运行所述作业。
具体的,已启动的资源容器Container若位于不同的节点上,AM和不同节点的NM之间保持心跳,周期性地向各节点的NM发送心跳信息,心跳信息中可以携带有为作业分配的Container是否已全部启动的消息,这样,各NM均能够知道作业所需要的所有Container是否都已经启动。基于此,在实际应用中,在判断出为作业已启动的Container数量满足作业运行所需的Container数量时,可以不单独给NM发送一个运行命令,而是在向NM发送的心跳信息中携带Container已全部启动的信息,NM在收到该心跳信息后,知道作业所需的所有Container都已启动,则开始运行作业。这样,可以在一定程度上提高处理效率。
本公开实施例的整体架构如图3所示,用户可以通过Client(附图3中的客户端)提交作业和作业配置信息到RM(附图3中的资源管理器),该作业配置信息包括作业的子任务数量以及所需的Container数量。RM创建作业对应的AM(附图3中的应用程序管理器)。AM获取作业配置信息,然后向RM发送资源请求,该资源请求中携带作业运行所需的Container数量,RM会相应的分配资源,返回资源分配结果给AM,资源分配结果中携带有分配给作业的Container信息和Container所在节点的节点信息,AM根据节点信息,向节点信息指示的节点的节点管理器NM(如附图3中的节点管理器1、2)分别发送相应的Container信息,各NM在接收到该Container信息后,各自启动节点上相应的Container(附图3中的资源容器)。本实施例中,AM在判断出为作业已启动的Container数量满足作业运行所需的Container数量时,才向所有已启动的Container发送作业运行指令,以运行作业。这样只有在已启动的Container数量满足作业关于作业Container数量的需求的情况下,才会告知所有已启动的Container运行作业,从而能够保证作业拿到全部的资源之后才刚性拉起作业,从而实现了YARN上的刚性调度。
基于与上述方法实施例相同的发明构思,本公开实施例还提供了一种资源调度装置,如图4所示,该装置可以包括请求接收模块401、第一资源分配模块402、资源启动模块403、资源判断模块404和作业运行模块405:
其中,请求接收模块401,用于使资源管理器RM接收资源请求,所述资源请求携带作业运行所需的资源容器Container数量。
第一资源分配模块402,用于使所述资源管理器响应所述资源请求,并将资源分配结果发送至所述作业对应的应用管理器AM,所述资源分配结果包括为所述作业分配的资源容器所在节点的节点信息和资源容器信息。
资源启动模块403,用于使所述应用管理器向所述节点信息指示的节点的节点管理器NM发送所述资源容器信息,以使所述节点管理器启动分配的资源容器。
资源判断模块404,用于使所述应用管理器判断已启动的所述资源容器数量是否满足所述作业运行所需的资源容器数量;
作业运行模块405,用于在所述资源判断模块404的判断结果是满足时,使应用管理器向所有已启动的所述资源容器发送作业运行指令,以运行所述作业。
可选的,在本公开的一些实施例中,所述装置还可包括资源申请模块和第二资源分配模块。其中,资源申请模块用于当已启动的所述资源容器数量不满足所述作业运行所需的资源容器数量时,使所述应用管理器向所述资源管理器发送新的资源请求。第二资源分配模块用于使所述资源管理器响应所述新的资源请求返回新的资源分配结果至所述应用管理器,所述新的资源分配结果包括为所述作业分配的新的资源容器所在节点的节点信息和新的资源容器信息。所述资源启动模块,还用于使所述应用管理器向所述新的资源容器所在节点的节点信息指示的目标节点的节点管理器发送所述新的资源容器信息,以使所述目标节点的节点管理器启动分配的新的资源容器。所述资源判断模块,还用于使所述应用管理器判断当前时刻已启动的所述资源容器数量是否满足所述作业运行所需的资源容器数量。所述作业运行模块,还用于在所述资源判断模块在当前时刻的判断结果是满足时,使应用管理器向当前时刻所有已启动的所述资源容器发送所述作业运行指令。
可选的,在本公开的一些实施例中,所述装置还包括资源申请控制模块,用于若应用管理器判断当前时刻已启动的所述资源容器数量依然不满足所述作业运行所需的资源容器数量,则触发所述资源申请模块向所述资源管理器发送新的资源请求,直至满足所述作业运行所需的资源容器数量时结束。
可选的,在本公开的一些实施例中,所述装置还包括资源释放模块,用于若超过预设时长为所述作业已启动的所述资源容器数量都不满足所述作业运行所需的资源容器数量,则使所述应用管理器释放为所述作业所有已启动的资源容器退出。
可选的,在本公开的一些实施例中,所述装置还包括心跳信息发送模块,用于使所述应用管理器周期性地向所述节点管理器发送心跳信息,所述心跳信息携带有分配的所述资源容器是否已全部启动的消息。所述作业运行模块,用于使应用管理器向所有已启动的所述资源容器发送作业运行指令,具体包括:在向所述节点管理器发送的心跳信息中携带分配的所述资源容器已全部启动的信息,以使所有已启动的所述资源容器运行所述作业。
应用本公开实施例方案,AM在判断出为作业已启动的Container数量满足作业运行所需的Container数量时,才向所有已启动的Container发送作业运行指令,以运行作业。这样只有在已启动的Container数量满足作业关于作业Container数量的需求的情况下,才会告知所有已启动的Container运行作业,从而能够保证作业拿到全部的资源之后才刚性拉起作业,从而实现了YARN上的刚性调度。
AM若判断出为作业已启动的Container数量不能满足作业运行所需的Container数量,则会请求RM继续为作业分配Container,并在接收到RM继续返回的Container分配结果后,与相应NM通信以使NM启动继续分配的Container,直至已启动的Container数量满足作业关于作业运行所需的Container数量的需求时,才向所有已启动的Container发送作业运行命令以运行作业,从而能够保证作业拿到全部的资源之后才刚性拉起作业,从而实现了YARN上的刚性调度。
本公开实施例还提供了一种电子设备,如图5所示电子设备50可包括处理器501和存储介质502,存储介质502存储有能够被处理器501执行的可执行指令,处理器501被可执行指令促使实现:如上述本公开实施例所提供的资源调度方法。
应用本公开实施例的方案,AM在判断出为作业已启动的Container数量满足作业运行所需的Container数量时,才向所有已启动的Container发送作业运行指令,以运行作业。这样只有在已启动的Container数量满足作业关于作业Container数量的需求的情况下,才会告知所有已启动的Container运行作业,从而能够保证作业拿到全部的资源之后才刚性拉起作业,从而实现了YARN上的刚性调度。
上述存储介质可以包括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,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
存储介质502与处理器501之间可以通过有线连接或者无线连接的方式进行数据传输,并且电子设备与其他设备之间可以通过有线通信接口或者无线通信接口进行通信。图5所示的仅为通过总线进行数据传输的示例,不作为具体连接方式的限定。
另外,本公开实施例提供了一种计算机可读存储介质,该存储介质存储有可执行指令,在被处理器调用和执行时实现:如上述本公开实施例所提供的资源调度方法。
在本公开实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行:如上述本公开实施例所提供的资源调度方法。
对于资源调度装置、电子设备和存储介质实施例而言,由于其涉及的方法内容基本相似于前述的方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本公开实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、DSL(Digital Subscriber Line,数字用户线))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如软盘、硬盘、磁带)、光介质(例如DVD(DigitalVersatile Disc,数字多功能光盘))、或者半导体介质(例如SSD(Solid State Disk,固态硬盘))等。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (12)
1.一种资源调度方法,其特征在于,所述方法包括:
资源管理器接收资源请求,所述资源请求携带作业运行所需的资源容器数量;
所述资源管理器响应所述资源请求,并将资源分配结果发送至所述作业对应的应用管理器,所述资源分配结果包括为所述作业分配的资源容器所在节点的节点信息和资源容器信息;
所述应用管理器向所述节点信息指示的节点的节点管理器发送所述资源容器信息,以使所述节点管理器启动分配的资源容器;
所述应用管理器判断已启动的所述资源容器数量是否满足所述作业运行所需的资源容器数量;
若满足,则应用管理器向所有已启动的所述资源容器发送作业运行指令,以运行所述作业。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当已启动的所述资源容器数量不满足所述作业运行所需的资源容器数量时,所述应用管理器向所述资源管理器发送新的资源请求;
所述资源管理器响应所述新的资源请求返回新的资源分配结果至所述应用管理器,所述新的资源分配结果包括为所述作业分配的新的资源容器所在节点的节点信息和新的资源容器信息;
所述应用管理器向所述新的资源容器所在节点的节点信息指示的目标节点的节点管理器发送所述新的资源容器信息,以使所述目标节点的节点管理器启动分配的新的资源容器;
所述应用管理器判断当前时刻已启动的所述资源容器数量是否满足所述作业运行所需的资源容器数量;
若满足,则所述应用管理器向当前时刻所有已启动的所述资源容器发送所述作业运行指令。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若应用管理器判断当前时刻已启动的所述资源容器数量依然不满足所述作业运行所需的资源容器数量,则返回所述应用管理器向所述资源管理器发送新的资源请求的步骤,直至满足所述作业运行所需的资源容器数量时结束。
4.根据权利要求1~3任一项所述的方法,其特征在于,所述方法还包括:
若超过预设时长为所述作业已启动的所述资源容器数量都不满足所述作业运行所需的资源容器数量,则所述应用管理器释放为所述作业所有已启动的资源容器退出。
5.根据权利要求1~3任一项所述的方法,其特征在于,所述方法还包括:
所述应用管理器周期性地向所述节点管理器发送心跳信息,所述心跳信息携带有分配的所述资源容器是否已全部启动的消息;
所述应用管理器向所有已启动的所述资源容器发送作业运行指令的步骤,包括:
在向所述节点管理器发送的心跳信息中携带分配的所述资源容器已全部启动的信息,以使所有已启动的所述资源容器运行所述作业。
6.一种资源调度装置,其特征在于,所述装置包括:
请求接收模块,用于使资源管理器接收资源请求,所述资源请求携带作业运行所需的资源容器数量;
第一资源分配模块,用于使所述资源管理器响应所述资源请求,并将资源分配结果发送至所述作业对应的应用管理器,所述资源分配结果包括为所述作业分配的资源容器所在节点的节点信息和资源容器信息;
资源启动模块,用于使所述应用管理器向所述节点信息指示的节点的节点管理器发送所述资源容器信息,以使所述节点管理器启动分配的资源容器;
资源判断模块,用于使所述应用管理器判断已启动的资源容器数量是否满足所述作业运行所需的资源容器数量;
作业运行模块,用于在所述资源判断模块的判断结果是满足时,使应用管理器向所有已启动的所述资源容器发送作业运行指令,以运行所述作业。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
资源申请模块,用于当已启动的所述资源容器数量不满足所述作业运行所需的资源容器数量时,使所述应用管理器向所述资源管理器发送新的资源请求;
第二资源分配模块,用于使所述资源管理器响应所述新的资源请求返回新的资源分配结果至所述应用管理器,所述新的资源分配结果包括为所述作业分配的新的资源容器所在节点的节点信息和新的资源容器信息;
所述资源启动模块,还用于使所述应用管理器向所述新的资源容器所在节点的节点信息指示的目标节点的节点管理器发送所述新的资源容器信息,以使所述目标节点的节点管理器启动分配的新的资源容器;
所述资源判断模块,还用于使所述应用管理器判断当前时刻已启动的所述资源容器数量是否满足所述作业运行所需的资源容器数量;
所述作业运行模块,还用于在所述资源判断模块在当前时刻的判断结果是满足时,使应用管理器向当前时刻所有已启动的所述资源容器发送所述作业运行指令。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
资源申请控制模块,用于若应用管理器判断当前时刻已启动的所述资源容器数量依然不满足所述作业运行所需的资源容器数量,则触发所述资源申请模块向所述资源管理器发送新的资源请求,直至满足所述作业运行所需的资源容器数量时结束。
9.根据权利要求6~8任一项所述的装置,其特征在于,所述装置还包括:
资源释放模块,用于若超过预设时长为所述作业已启动的所述资源容器数量都不满足所述作业运行所需的资源容器数量,则使所述应用管理器释放为所述作业所有已启动的资源容器退出。
10.根据权利要求6~8任一项所述的装置,其特征在于,所述装置还包括:
心跳信息发送模块,用于使所述应用管理器周期性地向所述节点管理器发送心跳信息,所述心跳信息携带有分配的所述资源容器是否已全部启动的消息;
所述作业运行模块,用于使应用管理器向所有已启动的所述资源容器发送作业运行指令,具体包括:
在向所述节点管理器发送的心跳信息中携带分配的所述资源容器已全部启动的信息,以使所有已启动的所述资源容器运行所述作业。
11.一种电子设备,其特征在于,包括处理器和存储介质,所述存储介质存储有能够被所述处理器执行的可执行指令,所述处理器被所述可执行指令促使实现如权利要求1-5中任一项所述的资源调度方法。
12.一种计算机可读存储介质,其特征在于,所述存储介质存储有可执行指令,在被处理器调用和执行时实现如权利要求1-5中任一项所述的资源调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110702487.8A CN113377498A (zh) | 2021-06-24 | 2021-06-24 | 资源调度方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110702487.8A CN113377498A (zh) | 2021-06-24 | 2021-06-24 | 资源调度方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113377498A true CN113377498A (zh) | 2021-09-10 |
Family
ID=77578996
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110702487.8A Pending CN113377498A (zh) | 2021-06-24 | 2021-06-24 | 资源调度方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113377498A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114579298A (zh) * | 2022-01-27 | 2022-06-03 | 浙江大华技术股份有限公司 | 资源管理方法、资源管理器和计算机可读存储介质 |
CN116643880A (zh) * | 2023-05-06 | 2023-08-25 | 上海楷领科技有限公司 | 集群节点处理方法、***、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107203424A (zh) * | 2017-04-17 | 2017-09-26 | 北京奇虎科技有限公司 | 一种在分布式集群中调度深度学习作业的方法和装置 |
CN108681777A (zh) * | 2018-05-07 | 2018-10-19 | 北京京东尚科信息技术有限公司 | 一种基于分布式***的机器学习程序运行的方法和装置 |
CN108737270A (zh) * | 2018-05-07 | 2018-11-02 | 北京京东尚科信息技术有限公司 | 一种服务器集群的资源管理方法和装置 |
CN109117252A (zh) * | 2017-06-26 | 2019-01-01 | 北京京东尚科信息技术有限公司 | 基于容器的任务处理的方法、***及容器集群管理*** |
US20200183751A1 (en) * | 2018-12-06 | 2020-06-11 | International Business Machines Corporation | Handling expiration of resources allocated by a resource manager running a data integration job |
-
2021
- 2021-06-24 CN CN202110702487.8A patent/CN113377498A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107203424A (zh) * | 2017-04-17 | 2017-09-26 | 北京奇虎科技有限公司 | 一种在分布式集群中调度深度学习作业的方法和装置 |
CN109117252A (zh) * | 2017-06-26 | 2019-01-01 | 北京京东尚科信息技术有限公司 | 基于容器的任务处理的方法、***及容器集群管理*** |
CN108681777A (zh) * | 2018-05-07 | 2018-10-19 | 北京京东尚科信息技术有限公司 | 一种基于分布式***的机器学习程序运行的方法和装置 |
CN108737270A (zh) * | 2018-05-07 | 2018-11-02 | 北京京东尚科信息技术有限公司 | 一种服务器集群的资源管理方法和装置 |
US20200183751A1 (en) * | 2018-12-06 | 2020-06-11 | International Business Machines Corporation | Handling expiration of resources allocated by a resource manager running a data integration job |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114579298A (zh) * | 2022-01-27 | 2022-06-03 | 浙江大华技术股份有限公司 | 资源管理方法、资源管理器和计算机可读存储介质 |
CN116643880A (zh) * | 2023-05-06 | 2023-08-25 | 上海楷领科技有限公司 | 集群节点处理方法、***、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3567829B1 (en) | Resource management method and apparatus | |
US20180144025A1 (en) | Map-reduce job virtualization | |
CN107018091B (zh) | 资源请求的调度方法和装置 | |
CN113377498A (zh) | 资源调度方法、装置、电子设备及存储介质 | |
WO2021227999A1 (zh) | 云计算服务***和方法 | |
JP2014520346A5 (zh) | ||
CN110659131B (zh) | 任务处理方法、电子装置、计算机设备及存储介质 | |
CN113419839A (zh) | 多类型作业的资源调度方法、装置、电子设备及存储介质 | |
CN112865993B (zh) | 分布式主从***中从节点的切换方法和装置 | |
CN112162852A (zh) | 一种多架构cpu节点的管理方法、装置及相关组件 | |
CN113886069A (zh) | 一种资源分配方法、装置、电子设备及存储介质 | |
CN108614734B (zh) | 安全参数索引管理方法及装置 | |
CN115617497A (zh) | 线程处理方法、调度组件、监测组件、服务器和存储介质 | |
CN111163140A (zh) | 资源获取和分配的方法、装置和计算机可读存储介质 | |
CN115150464A (zh) | 应用代理方法、装置、设备及介质 | |
CN113391925A (zh) | 云资源管理方法、***、介质、计算机设备 | |
CN111506388B (zh) | 容器性能探测方法、容器管理平台及计算机存储介质 | |
CN113419838A (zh) | 资源调度方法、装置、电子设备及存储介质 | |
CN108924128A (zh) | 一种移动终端及其进程间通信的限制方法、存储介质 | |
CN113391906B (zh) | 作业更新方法、装置、计算机设备及资源管理*** | |
CN112003931A (zh) | 一种编排控制器部署方法、***及相关组件 | |
CN108073453B (zh) | 分布式集群中cpu资源的调度方法以及装置 | |
CN115878333A (zh) | 进程组间的一致性判断方法、装置及设备 | |
WO2022001353A1 (zh) | 一种虚拟机和容器混合调度***、方法、调度器及装置 | |
CN113535332B (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 |