CN113391906B - 作业更新方法、装置、计算机设备及资源管理系统 - Google Patents
作业更新方法、装置、计算机设备及资源管理系统 Download PDFInfo
- Publication number
- CN113391906B CN113391906B CN202110709899.4A CN202110709899A CN113391906B CN 113391906 B CN113391906 B CN 113391906B CN 202110709899 A CN202110709899 A CN 202110709899A CN 113391906 B CN113391906 B CN 113391906B
- Authority
- CN
- China
- Prior art keywords
- job
- resource
- target
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000013468 resource allocation Methods 0.000 claims description 34
- 230000015654 memory Effects 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 10
- 230000001419 dependent effect Effects 0.000 claims description 6
- 238000013507 mapping Methods 0.000 claims description 5
- 230000004044 response Effects 0.000 claims description 5
- 230000008569 process Effects 0.000 abstract description 13
- 238000007726 management method Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000002085 persistent effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
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/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及一种作业更新方法、装置、计算机设备及存储介质,该方法包括:资源管理器接收作业更新请求,该更新请求包括作业标识以及作业更新信息;基于作业标识将对应目标作业对应的第一应用管理器结束,将已分配给第一应用管理器的资源配置为等待状态;基于作业更新信息启动目标作业对应的第二应用管理器;在第二应用管理器向资源管理器申请资源时将等待状态的资源分配给第二应用管理器,第二应用管理器启动目标作业。在作业更新时将已分配资源配置为等待状态不会被释放,启动作业对应的第二应用管理器后,将等待状态的资源分配给第二应用管理器,如此实现作业无缝重启更新,避免了作业更新过程中因为资源被其他作业抢走而造成作业更新失败问题。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种作业更新方法、作业更新装置、计算机设备及计算机可读存储介质。
背景技术
YARN(Yet Another Resource Negotiator,另一种资源协调器)是一种通用的资源管理系统,可以对多种计算框架资源进行管理和分配。YARN由RM(Resource Manager,资源管理器)和多个NM(Node Manager,节点管理器)组成,RM负责对各个NM上的资源进行管理和调度。Container(资源容器)是YARN中的资源抽象,封装了一个NM上的多维度资源,如内存、CPU(Central Processing Unit,中央处理单元)、磁盘、网络等。通过向RM申请,由RM选择合适的NM分配并启动Container,来执行相应的应用程序。
YARN上支持longrunning(连续运行)类型的作业,比如Flink(一种开源流处理框架)作业以及模型训练作业,该类作业表现为分配到Container后会一直持续运行或运行较长的一段时间。在该类作业运行的过程中,可能存在需要更新作业的情况(例如更新作业依赖或作业配置),而YARN中是不支持作业级别更新的,只能通过重启作业来进行更新。
在作业重启的过程中需要先释放原作业的资源,再提交新作业的资源申请,然而,在集群中作业较多且资源比较紧张的情况下,资源很有可能被其他正在等待的作业申请走,导致需要重启的新作业无法申请到合适的资源,从而作业更新失败。
发明内容
本公开实施例的目的在于提供一种作业更新方法、作业更新装置、计算机设备及计算机可读存储介质,以防止在作业更新的过程中因为重启作业导致作业资源被其他作业抢走而造成的作业更新失败的问题。
第一方面,本公开实施例提供一种作业更新方法,所述方法包括:
资源管理器接收作业更新请求,其中,所述作业更新请求至少包括作业标识以及对应的作业更新信息;
基于所述作业标识确定目标作业,将所述目标作业对应的第一应用管理器结束,并将已分配给所述第一应用管理器的资源配置为等待状态;
基于所述作业更新信息启动所述目标作业对应的第二应用管理器;
在所述第二应用管理器向所述资源管理器申请资源时,将所述配置为等待状态的资源分配给所述第二应用管理器;
所述第二应用管理器启动所述目标作业。
可选的,在本公开的一实施例中,所述作业更新请求携带作业的子任务更新信息,所述基于所述作业标识确定目标作业之后,所述方法还包括:
基于所述子任务更新信息,将所述目标作业的目标子任务对应的第一资源容器结束,并将所述第一资源容器配置为等待状态;
启动所述第二应用管理器之后,所述第二应用管理器向所述资源管理器发送所述目标子任务的资源请求;
所述第二应用管理器接收所述资源管理器响应所述资源请求而返回的资源分配结果,所述资源分配结果至少包括配置为等待状态的所述第一资源容器的信息;
所述第二应用管理器基于所述资源分配结果与对应的节点的节点管理器通信以启动相应的资源容器来重启运行所述目标子任务。
可选的,在本公开的一实施例中,所述子任务更新信息至少包括目标子任务标识,所述基于所述子任务更新信息,将所述目标作业的目标子任务对应的第一资源容器结束,包括:
基于所述目标子任务标识,在资源列表中获取所述目标子任务对应的第一资源容器的信息,所述资源列表包括不同的目标子任务标识与对应的第一资源容器的信息之间的映射关系;
基于所述第一资源容器的信息结束所述第一资源容器。
可选的,在本公开的一实施例中,所述第一资源容器的信息至少包括第一资源容器的标识以及第一资源容器所在节点的第一节点标识,所述第二应用管理器基于所述资源分配结果与对应的节点的节点管理器通信以启动相应的资源容器来重启运行所述目标子任务,包括:
所述第二应用管理器基于所述第一节点标识,向所述第一节点标识指示的第一指定节点的节点管理器发送所述第一资源容器的标识;
所述第一指定节点的节点管理器基于所述第一资源容器的标识在所述第一指定节点上清除第一资源容器的相关依赖数据之后,重启第一资源容器来实现重启运行所述目标子任务。
可选的,在本公开的一实施例中,所述资源分配结果还包括第二资源容器的信息,所述第二资源容器的信息至少包括第二资源容器的标识以及第二资源容器所在节点的第二节点标识,所述方法还包括:
所述第二应用管理器基于所述第二节点标识,向所述第二节点标识指示的第二指定节点的节点管理器发送所述第二资源容器的标识;
在所述重启第一资源容器的同时,所述第二指定节点的节点管理器基于所述第二资源容器的标识在所述第二指定节点上启动第二资源容器,从而实现重启运行所述目标子任务。
可选的,在本公开的一实施例中,所述方法还包括:
将所述作业更新信息存储至预设存储单元;
在所述第二应用管理器故障时,所述资源管理器从所述预设存储单元中读取所述作业更新信息;
所述资源管理器基于读取的所述作业更新信息恢复启动所述第二应用管理器。
可选的,在本公开的一实施例中,所述作业更新信息至少包括作业依赖信息和/或作业运行所需的配置信息。
第二方面,本公开实施例提供一种作业更新装置,所述装置包括:
作业请求接收模块,用于使资源管理器接收作业更新请求,其中,所述作业更新请求至少包括作业标识以及对应的作业更新信息;
作业资源配置模块,用于基于所述作业标识确定目标作业,将所述目标作业对应的第一应用管理器结束,并将已分配给所述第一应用管理器的资源配置为等待状态;
作业重启模块,用于基于所述作业更新信息启动所述目标作业对应的第二应用管理器;
作业资源分配模块,用于在所述第二应用管理器向所述资源管理器申请资源时,将所述配置为等待状态的资源分配给所述第二应用管理器;
作业启动模块,用于使所述第二应用管理器启动所述目标作业。
第三方面,本公开实施例提供一种计算机设备,包括处理器和存储器;其中,所述存储器存储有能够被所述处理器执行的计算机程序;所述处理器执行所述计算机程序时实现上述任一实施例所述作业更新方法。
第四方面,本公开实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器调用执行时实现上述任一实施例所述作业更新方法。
本公开实施例提供的技术方案与现有技术相比具有如下优点:
本公开实施例中,资源管理器接收作业更新请求,所述作业更新请求至少包括作业标识以及对应的作业更新信息,基于所述作业标识确定目标作业,将所述目标作业对应的第一应用管理器结束,并将已分配给所述第一应用管理器的资源配置为等待状态,然后基于所述作业更新信息启动所述目标作业对应的第二应用管理器,在所述第二应用管理器向所述资源管理器申请资源时,将所述配置为等待状态的资源分配给所述第二应用管理器。这样在目标作业更新时,将已分配给该第一应用管理器的资源即目标作业的资源配置为等待状态,此时,该资源不会被释放,启动目标作业对应的第二应用管理器之后,第二应用管理器为作业申请资源时资源管理器就直接将之前处于等待状态的资源分配给第二应用管理器,资源分配结束后可以启动运行目标作业,如此可实现作业的无缝重启更新,从而避免了在作业更新的过程中因为资源被其他作业抢走而造成的作业更新失败的问题。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本公开实施例作业更新方法的流程示意图;
图2为本公开另一实施例的作业更新方法的流程示意图;
图3为本公开实施例的YARN内部实现作业更新的交互流程示意图;
图4为本公开实施例的作业更新装置的结构示意图;
图5为本公开实施例的计算机设备的结构示意图。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
为了便于理解,下面首先对基于YARN的集群中的作业提交流程做简单介绍。
在YARN集群中,用户可通过客户端(Client)提交作业即应用程序,资源管理器RM为用户提交的作业创建用于管理所述作业的应用程序管理器AM(Application Manager),简称为应用管理器;应用管理器AM向所述资源管理器RM提出用于所述作业的资源申请;资源管理器RM根据各节点的资源使用信息,将若干节点上的资源容器Container分配给所述应用管理器AM;应用管理器AM获得所述资源管理器RM的资源分配结果后,与相应节点的节点管理器NM进行通信,在相应节点启动运行所述作业内的子任务,通常一个作业可以包含多个子任务。至此,作业完成了一个从提交到运行的完整流程。
在当前的YARN集群中,只要有作业更新,都需要执行上述的作业提交流程,相当于重启一个作业,然而,重启作业导致先分配给作业的资源释放,资源被释放后很有可能被其他作业申请走,再提交重启后的作业的资源申请时,重启的作业可能无法申请到合适的资源,从而导致作业更新失败。
为了解决该技术问题,本公开实施例提供了一种作业更新方法、可以应用于资源管理系统如YARN集群。下面,首先对本公开实施例所提供的作业更新方法进行介绍。
如图1所示,本公开实施例所提供的一种作业更新方法,可以包括如下步骤:
步骤S101:资源管理器接收作业更新请求,其中,所述作业更新请求至少包括作业标识以及对应的作业更新信息。
示例性的,作业标识可以是但不限于作业唯一标识ID等,作业更新信息至少可以包括作业依赖信息和/或作业运行所需的配置信息。作业依赖信息例如可以是第三方的依赖jar包的信息等,配置信息例如可以是环境变量等,但不限于此,这些可以参考现有技术理解,此处不再赘述。
具体的,用户可以通过客户端提交作业更新请求至资源管理器RM,以便对作业更新请求中的作业标识指示的目标作业进行更新,具体更新作业时可基于该作业更新信息来重启目标作业。
步骤S102:基于所述作业标识确定目标作业,将所述目标作业对应的第一应用管理器结束,并将已分配给所述第一应用管理器的资源配置为等待状态。
具体的,RM获取作业更新请求中的作业标识,基于作业标识如ID确定对应的目标作业如作业A。然后将目标作业如作业A的第一AM即初始AM结束,并将已分配给所述第一AM的资源即作业A的资源配置为等待状态,等待状态指示该资源不被释放。
步骤S103:基于所述作业更新信息启动所述目标作业对应的第二应用管理器。
具体的,RM响应作业更新请求,基于作业更新信息启动目标作业如作业A对应的第二应用管理器AM即新的AM。
步骤S104:在所述第二应用管理器向所述资源管理器申请资源时,将所述配置为等待状态的资源分配给所述第二应用管理器。
具体的,在第二AM启动之后,第二AM会向所述RM发送资源请求,以为目标作业申请资源,此时RM将之前配置为等待状态的资源分配给所述第二AM。
步骤S105:所述第二应用管理器启动所述目标作业。
具体的,RM将之前配置为等待状态的资源分配给所述第二AM,也即分配给更新重启后的目标作业,资源分配结束之后第二AM可以启动运行目标作业。
本公开上述实施例所提供的作业更新方法,在目标作业更新时,将更新前已分配给该第一AM的资源即目标作业的资源配置为等待状态,此时,该资源不会被释放,启动目标作业对应的新的AM即第二AM之后,新的AM为目标作业申请资源时RM就直接将之前处于等待状态的资源分配给新的AM,之后可以启动运行目标作业,如此可实现作业的无缝重启更新,从而避免了在作业更新的过程中因为资源被其他作业抢走而造成的作业更新失败的问题。
可选的,在上述实施例的基础上,本公开的一实施例中,可以实现细粒度的作业的子任务的更新重启。具体的,所述作业更新请求可以携带作业标识对应的作业的子任务更新信息,通常一个作业可包括多个子任务,若需要对一个子任务更新,则作业更新请求中可以携带相应子任务更新信息。相应的,结合图2中所示,步骤S102中基于所述作业标识确定目标作业之后,所述方法还可以包括以下步骤:
步骤S201:基于所述子任务更新信息,将所述目标作业的目标子任务对应的第一资源容器结束,并将所述第一资源容器配置为等待状态。
示例性的,在本公开的一实施例中,所述子任务更新信息至少可以包括目标子任务标识,例如目标作业如作业A由A1、A2和A3共三个子任务,若需要对A1子任务进行更新,则子任务更新信息可以包括目标子任务A1的标识。步骤S201具体可以包括以下步骤:
步骤i):基于所述目标子任务标识,在资源列表中获取所述目标子任务对应的第一资源容器的信息,所述资源列表包括不同的目标子任务标识与对应的第一资源容器的信息之间的映射关系。
示例性的,RM中通常会维护资源列表,其中记录了分配资源时不同作业的不同目标子任务标识与对应的第一资源容器的信息之间的映射关系,第一资源容器的信息可以是资源容器的标识以及资源容器所在节点的节点标识,例如RM在当前时刻之前为目标子任务A1分配的资源容器即第一资源容器在节点1上,且是节点1上的容器标识为10~30的资源容器。那么分配之后,RM的资源列表会记录资源分配信息,如目标子任务A1的标识与对应的第一资源容器的信息如“节点1”以及节点1上的“容器标识10~30”,此处仅为举例说明,并不限于此。
具体的,RM获取目标子任务A1的标识之后,在资源列表中查找得到目标子任务A1对应的第一资源容器的信息。
步骤ii):基于所述第一资源容器的信息结束所述第一资源容器。
具体的,RM可以将目标子任务A1对应的第一资源容器的信息发送至所述目标作业的AM,AM据此向例如“节点1”的NM发送第一资源容器的信息以及第一资源容器结束指令,“节点1”的NM收到该指令和信息后,响应该指令并基于第一资源容器的信息找到对应的第一资源容器,然后结束如杀死所述第一资源容器,此时也即更新目标子任务时结束了目标子任务A1。
步骤S202:启动所述第二应用管理器之后,所述第二应用管理器向所述资源管理器发送所述目标子任务的资源请求。
具体的,在步骤S103之后,新的AM向RM发送目标子任务A1的资源请求,以为目标子任务A1重新申请资源。也即准备要重启目标子任务A1。资源请求中可以包括目标子任务A1运行所需的资源信息如资源类型以及数量,例如所需的CPU和内存以及对应的CPU数量和内存数量等。
步骤S203:所述第二应用管理器接收所述资源管理器响应所述资源请求而返回的资源分配结果,所述资源分配结果至少包括配置为等待状态的所述第一资源容器的信息。
具体的,RM为目标子任务A1分配资源时,优先之前将配置为等待状态的所述第一资源容器分配给目标子任务A1,此时若第一资源容器不满足运行目标子任务A1所需的资源,也会分配其他新的资源容器给目标子任务A1,因此资源分配结果至少包括配置为等待状态的所述第一资源容器的信息。
步骤S204:所述第二应用管理器基于所述资源分配结果与对应的节点的节点管理器通信以启动相应的资源容器来重启运行所述目标子任务。
具体的,当分配资源满足运行目标子任务A1所需的资源时,第二AM即新的AM基于所述资源分配结果与对应的节点的节点管理器NM通信以启动相应的资源容器来重启运行所述目标子任务。
本实施例提供的上述方案,通过作业更新请求中携带的子任务更新信息,可以实现细粒度的作业的某个子任务的更新,使得该方案实施更为灵活。
可选的,在本公开的一实施例中,所述第一资源容器的信息至少可以包括第一资源容器的标识以及第一资源容器所在节点的第一节点标识。相应的,步骤S204中第二应用管理器基于所述资源分配结果与对应的节点的节点管理器通信以启动相应的资源容器来重启运行所述目标子任务,具体可以包括以下步骤:
步骤1):所述第二AM基于所述第一节点标识,向所述第一节点标识指示的第一指定节点的NM发送所述第一资源容器的标识。
具体的,第二AM基于第一节点标识如“节点1”,向“节点1”指示的节点1的NM发送所述第一资源容器的标识如“容器标识10~30”。
步骤2):所述第一指定节点的NM基于所述第一资源容器的标识在所述第一指定节点上清除第一资源容器的相关依赖数据之后,重启第一资源容器来实现重启运行所述目标子任务。
具体的,节点1的NM基于所述第一资源容器的标识如“容器标识10~30”在节点1上清除对应第一资源容器的相关依赖数据之后,重启第一资源容器来实现重启运行所述目标子任务。相关依赖数据例如可以是目标作业更新前即第二AM启动之前第一资源容器运行目标作业和/或目标子任务时的依赖文件等,但不限于此。
可选的,在上述实施例的基础上,本公开的一实施例中,所述资源分配结果还可包括第二资源容器的信息,所述第二资源容器的信息至少包括第二资源容器的标识如“容器标识21~25”以及第二资源容器所在节点的第二节点标识如“节点2”,所述方法还可包括以下步骤:
步骤a):所述第二AM基于所述第二节点标识,向所述第二节点标识指示的第二指定节点的NM发送所述第二资源容器的标识。
具体的,第二AM基于第二节点标识如“节点2”,向所述第二节点标识如“节点2”指示的第二指定节点如节点2的NM发送第二资源容器的标识如“容器标识21~25”。
步骤b):在所述重启第一资源容器的同时,所述第二指定节点的NM基于所述第二资源容器的标识在所述第二指定节点上启动第二资源容器,从而实现重启运行所述目标子任务。
具体的,在上述步骤2)中重启第一资源容器的同时,节点2的NM基于第二资源容器的标识如“容器标识21~25”在节点2上启动相应的第二资源容器,从而实现重启运行所述目标子任务。也即此时运行目标子任务所需的资源容器同时包括节点2上“容器标识21~25”对应的第二资源容器,以及节点1上“容器标识10~30”对应的第一资源容器。
可选的,在上述任一实施例的基础上,本公开的一实施例中,所述方法还可以包括以下步骤:1)将所述作业更新信息存储至预设存储单元;2)在所述第二AM故障时,所述RM从所述预设存储单元中读取所述作业更新信息;3)所述RM基于读取的所述作业更新信息恢复启动所述第二AM。
本实施例中,预设存储单元可以是持久化存储单元,例如存入ZK(Zookeeper,分布式的开放源码的分布式应用程序协调服务器)。作业的作业更新信息存储在持久化存储单元中,以防止出现AM故障如崩溃的情况时,RM可以从该存储单元获取到该作业更新信息,进而快速恢复启动第二AM,便于后续的继续作业运行时的资源调度和管理服务。
为了便于理解,下面从YARN的内部交互对本公开实施例提供的作业更新方法进行介绍。
如图3所示,为本公开实施例的YARN内部实现作业重启的交互流程示意图,大致流程如下:
第1步,当需要对作业进行更新时,通过客户端的更新作业接口,提交作业更新请求,作业更新请求携带作业标识和作业更新信息,其中待更新的作业的作业标识保持不变,作业更新信息有所改变,如作业依赖文件或者环境变量有所改变。
第2步,资源管理器根据作业标识找到需要更新的目标作业即应用程序。
第3步,资源管理器将所述作业更新信息存储至持久化存储模。
第4步,资源管理器将目标作业的应用程序管理器结束,并将已分配给所述应用程序管理器的资源配置为等待状态。
第5步,资源管理器基于作业更新信息重启目标作业的新的应用程序管理器。
第6步,新的应用程序管理器向资源管理器为目标作业申请资源,此时,资源管理器会在资源申请时找到第4步中保留的资源并使用,新的应用程序管理器会接管之前配置为等待状态的资源。
第7步,新的应用程序管理器启动目标作业后,对作业更新请求进行解析,若作业更新请求携带子任务更新信息,先结束掉相应子任务的资源容器,被结束的资源容器也不会释放资源,而是同第4步类似的进入等待状态,等待目标作业的新的AM为子任务申请资源容器时拿回之前处于等待状态的资源容器。在这个过程中,其他作业不会抢走该资源容器。新的应用程序管理器拿到为子任务申请的资源容器后,到对应的节点上启动资源容器。
YARN使用状态机在节点上标示资源容器的状态,子任务更新触发重启时,对应的第一资源容器均从运行(RUNNING)状态变为杀死(KILLING)状态后经过清理变到等待(RESERVED)状态,当为子任务申请的资源容器的信息到达相应节点后,节点的NM会根据资源容器的信息中的第一资源容器的信息,触发第一资源容器由等待状态转到完成(DONE)状态,最后结束,从而实现第一资源容器的重启。
本实施例提供的上述技术方案,保证作业在更新而要重启时,可以保留重启前已经拿到的资源,防止在重启过程中因为资源被其他作业抢走而造成的重启失败,也即作业更新失败。同时本公开的更新是针对同一作业如应用程序的,即作业标识不变,只是相应的配置有所改变,所以其实相当于是支持了更新/升级的概念,并且在过程中提供了作业级别的更新以及更细粒度的作业的子任务的更新重启。
基于同一发明构思,本公开实施例提供了一种作业更新装置,如图4中所示,所述装置可包括:
作业请求接收模块401,用于使资源管理器RM接收作业更新请求,其中,所述作业更新请求至少包括作业标识以及对应的作业更新信息。
作业资源配置模块402,用于基于所述作业标识确定目标作业,将所述目标作业对应的第一应用管理器AM结束,并将已分配给所述第一应用管理器的资源配置为等待状态。
作业重启模块403,用于基于所述作业更新信息启动所述目标作业对应的第二应用管理器AM。
作业资源分配模块404,用于在所述第二应用管理器向所述资源管理器申请资源时,将所述配置为等待状态的资源分配给所述第二应用管理器。
作业启动模块405,用于使所述第二应用管理器AM启动所述目标作业。
本公开实施例提供的上述作业更新装置在目标作业更新时,将已分配给该第一AM的资源即作业的资源配置为等待状态,此时,该资源不会被释放,启动目标作业对应的新的AM即第二AM之后,新的AM为作业申请资源时RM就直接将之前处于等待状态的资源分配给新的AM,资源分配结束后可以启动运行目标作业,如此可实现作业的无缝重启更新,避免了在作业更新的过程中因为资源被其他作业抢走而造成的作业更新失败的问题。
可选的,在本公开的一实施例中,所述作业更新请求携带作业标识对应的作业的子任务更新信息,所述作业资源配置模块基于所述作业标识确定目标作业之后,还用于:基于所述子任务更新信息,将所述目标作业的目标子任务对应的第一资源容器结束,并将所述第一资源容器配置为等待状态;作业重启模块启动所述第二AM之后,作业资源分配模块触发所述新的第二AM向所述RM发送所述目标子任务的资源请求;所述第二AM接收所述RM响应所述资源请求而返回的资源分配结果,所述资源分配结果至少包括配置为等待状态的所述第一资源容器的信息;所述第二AM基于所述资源分配结果与对应的节点的节点管理器NM通信以启动相应的资源容器来重启运行所述目标子任务。
可选的,在本公开的一实施例中,所述子任务更新信息至少包括目标子任务标识,所述作业资源配置模块基于所述子任务更新信息,将所述目标作业的目标子任务对应的第一资源容器结束,包括:基于所述目标子任务标识,在资源列表中获取所述目标子任务对应的第一资源容器的信息,所述资源列表包括不同的目标子任务标识与对应的第一资源容器的信息之间的映射关系;基于所述第一资源容器的信息结束所述第一资源容器。
可选的,在本公开的一实施例中,所述第一资源容器的信息至少包括第一资源容器的标识以及第一资源容器所在节点的第一节点标识,所述第二AM基于所述资源分配结果与对应的节点的节点管理器NM通信以启动相应的资源容器来重启运行所述目标子任务,包括:所述第二AM基于所述第一节点标识,向所述第一节点标识指示的第一指定节点的NM发送所述第一资源容器的标识;所述第一指定节点的NM基于所述第一资源容器的标识在所述第一指定节点上清除第一资源容器的相关依赖数据之后,重启第一资源容器来实现重启运行所述目标子任务。
可选的,在本公开的一实施例中,所述资源分配结果还包括第二资源容器的信息,所述第二资源容器的信息至少包括第二资源容器的标识以及第二资源容器所在节点的第二节点标识,所述装置还包括作业重启模块用于触发所述第二AM基于所述第二节点标识,向所述第二节点标识指示的第二指定节点的NM发送所述第二资源容器的标识;在所述重启第一资源容器的同时,所述第二指定节点的NM基于所述第二资源容器的标识在所述第二指定节点上启动第二资源容器,从而实现重启运行所述目标子任务。
可选的,在本公开的一实施例中,所述装置还可包括存储模块,用于将所述作业更新信息存储至预设存储单元。在所述第二AM故障时,所述RM从所述预设存储单元中读取所述作业更新信息,所述RM基于读取的所述作业更新信息恢复启动所述第二AM。
可选的,在本公开的一实施例中,所述作业更新信息至少可以包括但不限于作业依赖信息和/或作业运行所需的配置信息。
本公开提供了一种计算机设备,如图5所示,计算机设备包括处理器501和存储器502。其中,所述存储器502存储有能够被所述处理器501执行的计算机程序;所述处理器501执行所述计算机程序时实现上述任一实施例所述作业更新方法。
上述存储器502可以包括RAM(Random Access Memory,随机存取存储器),也可以包括NVM(Non-volatile Memory,非易失性存储器),例如至少一个磁盘存储器。可选的,存储器502还可以是至少一个位于远离前述处理器的存储装置。
上述处理器可以是通用处理器,包括CPU、NP(Network Processor,网络处理器)等;还可以是DSP(Digital Signal Processor,数字信号处理器)、ASIC(ApplicationSpecific Integrated Circuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
存储器502与处理器501之间可以通过有线连接的方式进行数据传输,并且计算机设备与其他设备之间可以通过有线通信接口或者无线通信接口进行通信。图5所示的仅为通过总线进行数据传输的示例,不作为具体连接方式的限定。
另外,本公开提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器调用执行时实现上述任一实施例所述作业更新方法。
在本公开提供的又一实施例中,还提供了一种计算机程序产品,当其在计算机上运行时,使得计算机执行本公开实施例提供的上述任一实施例中的作业更新方法。
对于作业更新装置、计算机设备、计算机可读存储介质实施例而言,由于其涉及的方法内容基本相似于前述的方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种作业更新方法,其特征在于,所述方法包括:
资源管理器接收作业更新请求,其中,所述作业更新请求至少包括作业标识以及对应的作业更新信息;
基于所述作业标识确定目标作业,将所述目标作业对应的第一应用管理器结束,并将已分配给所述第一应用管理器的资源配置为等待状态;
基于所述作业更新信息启动所述目标作业对应的第二应用管理器;
在所述第二应用管理器向所述资源管理器申请资源时,将所述配置为等待状态的资源分配给所述第二应用管理器;
所述第二应用管理器启动所述目标作业。
2.根据权利要求1所述的作业更新方法,其特征在于,所述作业更新请求携带所述作业标识对应作业的子任务更新信息,所述基于所述作业标识确定目标作业之后,所述方法还包括:
基于所述子任务更新信息,将所述目标作业的目标子任务对应的第一资源容器结束,并将所述第一资源容器配置为等待状态;
启动所述第二应用管理器之后,所述第二应用管理器向所述资源管理器发送所述目标子任务的资源请求;
所述第二应用管理器接收所述资源管理器响应所述资源请求而返回的资源分配结果,所述资源分配结果至少包括配置为等待状态的所述第一资源容器的信息;
所述第二应用管理器基于所述资源分配结果与对应的节点的节点管理器通信以启动相应的资源容器来重启运行所述目标子任务。
3.根据权利要求2所述的作业更新方法,其特征在于,所述子任务更新信息至少包括目标子任务标识,所述基于所述子任务更新信息,将所述目标作业的目标子任务对应的第一资源容器结束,包括:
基于所述目标子任务标识,在资源列表中获取所述目标子任务对应的第一资源容器的信息,所述资源列表包括不同的目标子任务标识与对应的第一资源容器的信息之间的映射关系;
基于所述第一资源容器的信息结束所述第一资源容器。
4.根据权利要求2所述的作业更新方法,其特征在于,所述第一资源容器的信息至少包括第一资源容器的标识以及第一资源容器所在节点的第一节点标识,所述第二应用管理器基于所述资源分配结果与对应的节点的节点管理器通信以启动相应的资源容器来重启运行所述目标子任务,包括:
所述第二应用管理器基于所述第一节点标识,向所述第一节点标识指示的第一指定节点的节点管理器发送所述第一资源容器的标识;
所述第一指定节点的节点管理器基于所述第一资源容器的标识在所述第一指定节点上清除第一资源容器的相关依赖数据之后,重启第一资源容器来实现重启运行所述目标子任务。
5.根据权利要求4所述的作业更新方法,其特征在于,所述资源分配结果还包括第二资源容器的信息,所述第二资源容器的信息至少包括第二资源容器的标识以及第二资源容器所在节点的第二节点标识,所述方法还包括:
所述第二应用管理器基于所述第二节点标识,向所述第二节点标识指示的第二指定节点的节点管理器发送所述第二资源容器的标识;
在所述重启第一资源容器的同时,所述第二指定节点的节点管理器基于所述第二资源容器的标识在所述第二指定节点上启动第二资源容器,从而实现重启运行所述目标子任务。
6.根据权利要求1~5任一项所述的作业更新方法,其特征在于,所述方法还包括:
将所述作业更新信息存储至预设存储单元;
在所述第二应用管理器故障时,所述资源管理器从所述预设存储单元中读取所述作业更新信息;
所述资源管理器基于读取的所述作业更新信息恢复启动所述第二应用管理器。
7.根据权利要求6所述的作业更新方法,其特征在于,所述作业更新信息至少包括作业依赖信息和/或作业运行所需的配置信息。
8.一种作业更新装置,其特征在于,所述装置包括:
作业请求接收模块,用于使资源管理器接收作业更新请求,其中,所述作业更新请求至少包括作业标识以及对应的作业更新信息;
作业资源配置模块,用于基于所述作业标识确定目标作业,将所述目标作业对应的第一应用管理器结束,并将已分配给所述第一应用管理器的资源配置为等待状态;
作业重启模块,用于基于所述作业更新信息启动所述目标作业对应的第二应用管理器;
作业资源分配模块,用于在所述第二应用管理器向所述资源管理器申请资源时,将所述配置为等待状态的资源分配给所述第二应用管理器;
作业启动模块,用于使所述第二应用管理器启动所述目标作业。
9.一种计算机设备,其特征在于,包括处理器和存储器;
其中,所述存储器存储有能够被所述处理器执行的计算机程序;
所述处理器执行所述计算机程序时实现权利要求1-7中任一项所述作业更新方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器调用执行时实现权利要求1-7中任一项所述作业更新方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110709899.4A CN113391906B (zh) | 2021-06-25 | 2021-06-25 | 作业更新方法、装置、计算机设备及资源管理系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110709899.4A CN113391906B (zh) | 2021-06-25 | 2021-06-25 | 作业更新方法、装置、计算机设备及资源管理系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113391906A CN113391906A (zh) | 2021-09-14 |
CN113391906B true CN113391906B (zh) | 2024-03-01 |
Family
ID=77623997
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110709899.4A Active CN113391906B (zh) | 2021-06-25 | 2021-06-25 | 作业更新方法、装置、计算机设备及资源管理系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113391906B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115454450B (zh) * | 2022-09-15 | 2024-04-30 | 北京火山引擎科技有限公司 | 一种针对数据作业的资源管理的方法、装置、电子设备和存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104780146A (zh) * | 2014-01-13 | 2015-07-15 | 华为技术有限公司 | 资源管理方法及装置 |
CN105512083A (zh) * | 2015-11-30 | 2016-04-20 | 华为技术有限公司 | 基于yarn的资源管理方法、装置及系统 |
CN105808334A (zh) * | 2016-03-04 | 2016-07-27 | 山东大学 | 一种基于资源重用的MapReduce短作业优化系统及方法 |
CN108293041A (zh) * | 2015-12-28 | 2018-07-17 | 华为技术有限公司 | 一种资源的分配方法、装置和系统 |
CN108874549A (zh) * | 2018-07-19 | 2018-11-23 | 北京百度网讯科技有限公司 | 资源复用方法、装置、终端和计算机可读存储介质 |
CN110597614A (zh) * | 2018-06-12 | 2019-12-20 | 阿里巴巴集团控股有限公司 | 一种资源调整方法及装置 |
CN111427675A (zh) * | 2020-03-20 | 2020-07-17 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置以及计算机可读存储介质 |
-
2021
- 2021-06-25 CN CN202110709899.4A patent/CN113391906B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104780146A (zh) * | 2014-01-13 | 2015-07-15 | 华为技术有限公司 | 资源管理方法及装置 |
CN105512083A (zh) * | 2015-11-30 | 2016-04-20 | 华为技术有限公司 | 基于yarn的资源管理方法、装置及系统 |
CN108293041A (zh) * | 2015-12-28 | 2018-07-17 | 华为技术有限公司 | 一种资源的分配方法、装置和系统 |
CN105808334A (zh) * | 2016-03-04 | 2016-07-27 | 山东大学 | 一种基于资源重用的MapReduce短作业优化系统及方法 |
CN110597614A (zh) * | 2018-06-12 | 2019-12-20 | 阿里巴巴集团控股有限公司 | 一种资源调整方法及装置 |
CN108874549A (zh) * | 2018-07-19 | 2018-11-23 | 北京百度网讯科技有限公司 | 资源复用方法、装置、终端和计算机可读存储介质 |
CN111427675A (zh) * | 2020-03-20 | 2020-07-17 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置以及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113391906A (zh) | 2021-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10432460B2 (en) | Network service scaling method and apparatus | |
US10944621B2 (en) | Orchestrator for a virtual network platform as a service (VNPAAS) | |
US10503555B2 (en) | Selecting type and quantity of application masters that need to be started in advance | |
US9684502B2 (en) | Apparatus, systems, and methods for distributed application orchestration and deployment | |
JP6658882B2 (ja) | 制御装置、vnf配置先選択方法及びプログラム | |
US8533701B2 (en) | Virtual machine image update service | |
US8997093B2 (en) | Application installation management by selectively reuse or terminate virtual machines based on a process status | |
US20170085419A1 (en) | System and method for deploying an application | |
CN110941481A (zh) | 资源调度方法、装置及系统 | |
US10783015B2 (en) | Apparatus and method for providing long-term function execution in serverless environment | |
CN110661647A (zh) | 一种生命周期管理方法及装置 | |
US11561818B1 (en) | Monitoring VNFCs that are composed of independently manageable software modules | |
CN108874549B (zh) | 资源复用方法、装置、终端和计算机可读存储介质 | |
WO2016095535A1 (zh) | 资源分配方法、装置和服务器 | |
CN113391906B (zh) | 作业更新方法、装置、计算机设备及资源管理系统 | |
CN112162852A (zh) | 一种多架构cpu节点的管理方法、装置及相关组件 | |
CN110659131A (zh) | 任务处理方法、电子装置、计算机设备及存储介质 | |
CN111835679A (zh) | 多租户场景下的租户资源管理方法和装置 | |
CN113377498A (zh) | 资源调度方法、装置、电子设备及存储介质 | |
CN113419839A (zh) | 多类型作业的资源调度方法、装置、电子设备及存储介质 | |
CN113434283B (zh) | 服务调度方法及装置、服务器、计算机可读存储介质 | |
CN111506388B (zh) | 容器性能探测方法、容器管理平台及计算机存储介质 | |
WO2020098352A1 (zh) | 一种工作流调度方法、装置和系统 | |
CN113886349A (zh) | 计费系统参数装载共享方法、装置及计算设备 | |
CN112055099A (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 |