CN117009063A - 一种任务执行方法和装置 - Google Patents

一种任务执行方法和装置 Download PDF

Info

Publication number
CN117009063A
CN117009063A CN202210466320.0A CN202210466320A CN117009063A CN 117009063 A CN117009063 A CN 117009063A CN 202210466320 A CN202210466320 A CN 202210466320A CN 117009063 A CN117009063 A CN 117009063A
Authority
CN
China
Prior art keywords
task
exclusive
target task
target
slots
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
CN202210466320.0A
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 Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun Information 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 Jingdong Century Trading Co Ltd, Beijing Wodong Tianjun Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN202210466320.0A priority Critical patent/CN117009063A/zh
Publication of CN117009063A publication Critical patent/CN117009063A/zh
Pending legal-status Critical Current

Links

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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种任务执行方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:根据目标任务运行时的最大占用槽位数量以及每个任务执行节点提供的槽位数量,计算目标任务需要独占的任务执行节点数量,若目标任务当前已独占的任务执行节点数量未达到所述目标任务需要独占的任务执行节点数量,则从未被任何任务独占的任务执行节点中查找目标任务可独占的任务执行节点,并标记为被目标任务独占,在目标任务独占的所有任务执行节点中查找槽位以执行目标任务。该实施方式能够使得多任务混合部署实现在TaskManager级别的资源隔离,任务独享所占用的TaskManager,避免任务出现异常时互相影响,并且用户可以指定任务运行时所需资源数。

Description

一种任务执行方法和装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种任务执行方法和装置。
背景技术
随着大数据技术的发展,以及业务对实时性要求的提高,越来越多的企业开始利用实时计算来支撑内部业务。Flink作为流式计算引擎,广泛地被用于实际的生产实践中。同时随着容器化技术的发展,越来越多的应用通过容器化部署。Flink集群也常见于容器化部署,在实际的生产中常常运行在Kubernetes(K8s)上。然而在实际使用过程中,用户常常在同一集群上同时部署多个任务。在现有方案中,多个任务混合部署,只做到了slot(槽位)级别资源隔离,同一个TaskManager(任务执行节点)上往往有多个任务的子任务在同时运行,当其中一个任务出现异常导致TaskManager异常时,会使在该TaskManager上运行的所有任务都出现异常,任务之间互相影响。
发明内容
有鉴于此,本发明实施例提供一种任务执行方法和装置,能够使得多任务混合部署时实现在TaskManager级别的资源隔离,Job(任务)独享所占用的TaskManager,避免任务出现异常时互相影响,并且用户可以以slot数量预估值作为参考指定job运行时所需资源数。
为实现上述目的,根据本发明实施例的一个方面,提供了一种任务执行方法。
一种任务执行方法,包括:根据目标任务运行时的最大占用槽位数量以及每个任务执行节点提供的槽位数量,计算所述目标任务需要独占的任务执行节点数量,其中,槽位用于执行任务;若所述目标任务当前已独占的任务执行节点数量未达到所述目标任务需要独占的任务执行节点数量,则根据所述目标任务需要独占的任务执行节点数量与所述目标任务当前已独占的任务执行节点数量的差值,从未被任何任务独占的任务执行节点中查找所述目标任务可独占的任务执行节点,并将所述可独占的任务执行节点标记为被所述目标任务独占;在所述目标任务独占的所有任务执行节点中查找槽位以执行所述目标任务,所述目标任务独占的所有任务执行节点包括所述目标任务当前已独占的任务执行节点和所述可独占的任务执行节点。
可选地,所述目标任务部署在Flink集群中;所述计算所述目标任务需要独占的任务执行节点数量之前,包括:计算所述目标任务的槽位最大预估值和槽位最小预估值,所述槽位最大预估值等于所述目标任务对应的流式执行区域中所有槽位共享组中最大并行度的和,所述目标任务对应的流式执行区域是所述目标任务的数据流图中子任务节点所属的流式执行区域;所述槽位最小预估值等于所述目标任务对应的各流式执行区域所需的槽位数量之中的最大值;根据所述目标任务的槽位最大预估值和槽位最小预估值以及用户指定的初始槽位数量,按照预设规则确定所述目标任务运行时的最大占用槽位数量。
可选地,所述按照预设规则确定所述目标任务运行时的最大占用槽位数量,包括:如果所述用户指定的初始槽位数量小于所述槽位最小预估值,则以所述槽位最小预估值作为所述目标任务运行时的最大占用槽位数量;如果所述用户指定的初始槽位数量大于所述槽位最大预估值,则以所述槽位最大预估值作为所述目标任务运行时的最大占用槽位数量;如果所述用户指定的初始槽位数量大于或等于所述槽位最小预估值且小于或等于所述槽位最大预估值,则以所述用户指定的初始槽位数量作为所述目标任务运行时的最大占用槽位数量。
可选地,所述从未被任何任务独占的任务执行节点中查找所述目标任务可独占的任务执行节点,并将所述可独占的任务执行节点标记为被所述目标任务独占,包括:Flink集群中的资源管理器从已注册到所述资源管理器的任务执行节点中寻找未被任何任务独占的任务执行节点,并标记为被所述目标任务独占,所述资源管理器中注册有任务和该任务运行时的最大占用槽位数量,以及该任务与该任务当前已独占的任务执行节点之间的映射关系。
可选地,若所述目标任务执行成功或执行过程中出现异常,则释放所述目标任务独占的所有任务执行节点。
可选地,若所述目标任务执行过程中所述Flink集群的集群管理器出现异常,则所述释放所述目标任务独占的所有任务执行节点之后,还包括:所述Flink集群中资源管理器与任务协调器失去连接后,清理所述目标任务与独占的所有任务执行节点之间的绑定关系。
可选地,若所述目标任务执行过程中所述Flink集群的资源管理器出现异常,所述方法还包括:所述目标任务独占的任务执行节点向所述Flink集群中新的资源管理器注册,所述新的资源管理器根据所述目标任务独占的任务执行节点发送的槽位报告重建所述目标任务与所独占的任务执行节点之间的映射关系。
可选地,所述目标任务独占的任务执行节点向所述Flink集群中新的资源管理器注册成功之后,所述方法还包括:所述目标任务独占的任务执行节点主动与所述新的资源管理器建立连接,并调用槽位管理器实现类的用于注册槽位信息的方法,注册所述目标任务独占的任务执行节点的槽位信息。
可选地,若所述目标任务执行过程中所述目标任务独占的任务执行节点出现异常,所述方法还包括:所述Flink集群中的资源管理器解除与出现异常的任务执行节点的绑定关系。
根据本发明实施例的另一方面,提供了一种任务执行装置。
一种任务执行装置,包括:任务执行节点数量计算模块,用于根据目标任务运行时的最大占用槽位数量以及每个任务执行节点提供的槽位数量,计算所述目标任务需要独占的任务执行节点数量,其中,槽位用于执行任务;任务执行节点标记模块,用于若所述目标任务当前已独占的任务执行节点数量未达到所述目标任务需要独占的任务执行节点数量,则根据所述目标任务需要独占的任务执行节点数量与所述目标任务当前已独占的任务执行节点数量的差值,从未被任何任务独占的任务执行节点中查找所述目标任务可独占的任务执行节点,并将所述可独占的任务执行节点标记为被所述目标任务独占;任务执行模块,用于在所述目标任务独占的所有任务执行节点中查找槽位以执行所述目标任务,所述目标任务独占的所有任务执行节点包括所述目标任务当前已独占的任务执行节点和所述可独占的任务执行节点。
可选地,所述目标任务部署在Flink集群中;所述装置还包括槽位预估模块,用于:计算所述目标任务的槽位最大预估值和槽位最小预估值,所述槽位最大预估值等于所述目标任务对应的流式执行区域中所有槽位共享组中最大并行度的和,所述目标任务对应的流式执行区域是所述目标任务的数据流图中子任务节点所属的流式执行区域;所述槽位最小预估值等于所述目标任务对应的各流式执行区域所需的槽位数量之中的最大值;根据所述目标任务的槽位最大预估值和槽位最小预估值以及用户指定的初始槽位数量,按照预设规则确定所述目标任务运行时的最大占用槽位数量。
可选地,所述槽位预估模块包括槽位数量计算子模块,用于:如果所述用户指定的初始槽位数量小于所述槽位最小预估值,则以所述槽位最小预估值作为所述目标任务运行时的最大占用槽位数量;如果所述用户指定的初始槽位数量大于所述槽位最大预估值,则以所述槽位最大预估值作为所述目标任务运行时的最大占用槽位数量;如果所述用户指定的初始槽位数量大于或等于所述槽位最小预估值且小于或等于所述槽位最大预估值,则以所述用户指定的初始槽位数量作为所述目标任务运行时的最大占用槽位数量。
可选地,所述任务执行节点标记模块还用于:通过Flink集群中的资源管理器从已注册到所述资源管理器的任务执行节点中寻找未被任何任务独占的任务执行节点,并标记为被所述目标任务独占,所述资源管理器中注册有任务和该任务运行时的最大占用槽位数量,以及该任务与该任务当前已独占的任务执行节点之间的映射关系。
可选地,还包括任务执行节点释放模块,用于若所述目标任务执行成功或执行过程中出现异常,则释放所述目标任务独占的所有任务执行节点。
可选地,还包括第一异常处理模块,用于若所述目标任务执行过程中所述Flink集群的集群管理器出现异常,则所述释放所述目标任务独占的所有任务执行节点之后,由所述Flink集群中资源管理器与任务协调器失去连接后,清理所述目标任务与独占的所有任务执行节点之间的绑定关系。
可选地,还包括第二异常处理模块,用于若所述目标任务执行过程中所述Flink集群的资源管理器出现异常,通过所述目标任务独占的任务执行节点向所述Flink集群中新的资源管理器注册,所述新的资源管理器根据所述目标任务独占的任务执行节点发送的槽位报告重建所述目标任务与所独占的任务执行节点之间的映射关系。
可选地,所述第二异常处理模块还用于:在所述目标任务独占的任务执行节点向所述Flink集群中新的资源管理器注册成功之后,由所述目标任务独占的任务执行节点主动与所述新的资源管理器建立连接,并调用槽位管理器实现类的用于注册槽位信息的方法,注册所述目标任务独占的任务执行节点的槽位信息。
可选地,还包括第三异常处理模块,用于若所述目标任务执行过程中所述目标任务独占的任务执行节点出现异常,通过所述Flink集群中的资源管理器解除与出现异常的任务执行节点的绑定关系。
根据本发明实施例的又一方面,提供了一种电子设备。
一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现本发明实施例所提供的任务执行方法。
根据本发明实施例的又一方面,提供了一种计算机可读介质。
一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例所提供的任务执行方法。
上述发明中的一个实施例具有如下优点或有益效果:根据目标任务运行时的最大占用槽位数量以及每个任务执行节点提供的槽位数量,计算目标任务需要独占的任务执行节点数量,其中,槽位用于执行任务;若目标任务当前已独占的任务执行节点数量未达到所述目标任务需要独占的任务执行节点数量,则根据目标任务需要独占的任务执行节点数量与目标任务当前已独占的任务执行节点数量的差值,从未被任何任务独占的任务执行节点中查找目标任务可独占的任务执行节点,并将可独占的任务执行节点标记为被目标任务独占;在目标任务独占的所有任务执行节点中查找槽位以执行目标任务,目标任务独占的所有任务执行节点包括目标任务当前已独占的任务执行节点和可独占的任务执行节点。能够使得多任务混合部署时实现在TaskManager级别的资源隔离,任务独享所占用的TaskManager,避免任务出现异常时互相影响,并且通过在任务提交运行之前对任务所需槽位数量进行预估,用户可以以槽位数量预估值作为参考来指定任务运行时所需资源数。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明一个实施例的任务执行方法的主要步骤示意图;
图2是根据本发明一个实施例的任务执行的框架示意图;
图3是根据本发明一个实施例的任务执行装置的主要模块示意图;
图4是本发明实施例可以应用于其中的示例性***架构图;
图5是适于用来实现本发明实施例的终端设备或服务器的计算机***的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
本领域技术技术人员知道,本发明的实施方式可以实现为一种***、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
图1是根据本发明一个实施例的任务执行方法的主要步骤示意图。如图1所示,本发明一个实施例的任务执行方法主要包括如下的步骤S101至步骤S103。
步骤S101:根据目标任务运行时的最大占用槽位数量以及每个任务执行节点提供的槽位数量,计算目标任务需要独占的任务执行节点数量,其中,槽位用于执行任务;
目标任务是指当前要执行的任务。
步骤S102:若目标任务当前已独占的任务执行节点数量未达到目标任务需要独占的任务执行节点数量,则根据目标任务需要独占的任务执行节点数量与目标任务当前已独占的任务执行节点数量的差值,从未被任何任务独占的任务执行节点中查找目标任务可独占的任务执行节点,并将该可独占的任务执行节点标记为被目标任务独占;
步骤S103:在目标任务独占的所有任务执行节点中查找槽位以执行目标任务,目标任务独占的所有任务执行节点包括目标任务当前已独占的任务执行节点和可独占的任务执行节点。
本发明实施例的目标任务部署在Flink集群中。
目标任务需要独占的任务执行节点数量具体为目标任务运行时的最大占用槽位数量除以每个任务执行节点提供的槽位数量后得到的商。
计算目标任务需要独占的任务执行节点数量之前,包括:计算目标任务的槽位最大预估值和槽位最小预估值,该槽位最大预估值等于目标任务对应的流式执行区域中所有槽位共享组中最大并行度的和,目标任务对应的流式执行区域是目标任务的数据流图中子任务节点所属的流式执行区域;该槽位最小预估值等于目标任务对应的各流式执行区域所需的槽位数量之中的最大值;根据目标任务的槽位最大预估值和槽位最小预估值以及用户指定的初始槽位数量,按照预设规则确定目标任务运行时的最大占用槽位数量。
按照预设规则确定目标任务运行时的最大占用槽位数量,具体包括:如果用户指定的初始槽位数量小于槽位最小预估值,则以槽位最小预估值作为目标任务运行时的最大占用槽位数量;如果用户指定的初始槽位数量大于槽位最大预估值,则以槽位最大预估值作为目标任务运行时的最大占用槽位数量;如果用户指定的初始槽位数量大于或等于槽位最小预估值且小于或等于槽位最大预估值,则以用户指定的初始槽位数量作为目标任务运行时的最大占用槽位数量。
从未被任何任务独占的任务执行节点中查找目标任务可独占的任务执行节点,并将可独占的任务执行节点标记为被目标任务独占,具体包括:Flink集群中的资源管理器从已注册到资源管理器的任务执行节点中寻找未被任何任务独占的任务执行节点,并标记为被目标任务独占,资源管理器中注册有任务和该任务运行时的最大占用槽位数量,以及该任务与该任务当前已独占的任务执行节点之间的映射关系。
若目标任务执行成功或执行过程中出现异常,则释放目标任务独占的所有任务执行节点。
在一个实施例中,若目标任务执行过程中Flink集群的集群管理器出现异常,则释放目标任务独占的所有任务执行节点之后,Flink集群中资源管理器可以在与任务协调器失去连接后,清理目标任务与独占的所有任务执行节点之间的绑定关系。
在一个实施例中,若目标任务执行过程中Flink集群的资源管理器出现异常,目标任务独占的任务执行节点可以向Flink集群中新的资源管理器注册,该新的资源管理器根据目标任务独占的任务执行节点发送的槽位报告重建目标任务与所独占的任务执行节点之间的映射关系。
目标任务独占的任务执行节点向Flink集群中新的资源管理器注册成功之后,还可以包括:目标任务独占的任务执行节点主动与新的资源管理器建立连接,并调用槽位管理器实现类的用于注册槽位信息的方法,注册目标任务独占的任务执行节点的槽位信息。
在一个实施例中,若目标任务执行过程中目标任务独占的任务执行节点出现异常,Flink集群中的资源管理器可解除与出现异常的任务执行节点的绑定关系。
本发明一个实施例的任务执行流程包括slot(槽位)预估、资源隔离、异常情况处理三个部分,通过本发明实施例的任务执行流程可以实现整个集群多任务混合部署TaskManager级别资源隔离。图2是根据本发明一个实施例的任务执行的框架示意图。如图2所示,JobMaster即job协调器,或称任务协调器。ResourceManager即资源管理器,负责任务调度时slot(槽位)的分配,资源管理器与多个任务协调器建立连接。TaskManager即任务执行节点,每个任务执行节点中可以有多个slot,slot即槽位,是Flink资源管理的最小单元。job是Flink集群上运行的任务。
JobManager是Flink集群管理器,负责协调整个集群的运行。每个应用程序都会被一个不同的JobManager所控制执行,JobManager会先接收到要执行的应用程序,这个应用程序包括:数据流图(Job Graph)、逻辑数据流图(ogical dataflow graph)和打包了所有的类、库和其它资源的JAR包。Jobmanager会把Jobgraph转换成一个物理层面的数据流图,这个图被叫做“执行图”(Executiongraph),其中包含了所有可以并发执行的任务。JobManager会向资源管理器(Resourcemanager)请求执行任务必要的资源,也就是任务执行节点Taskmanager上的槽位slot,一旦获取到了足够的资源,就会将执行图分发到真正运行它们的任务执行节点Taskmanager上。
本发明实施例的任务协调器可根据任务的数据流图(jobGraph)中子任务节点(jobVetex)的slot共享组(slotsharingGroup,即槽位共享组)和位置约束(co-locationconstraint)配置,以及jobVertex所属的流式执行区域(pipeline region),计算出job(任务)运行时实现最佳性能所需要的slot数量slotMaxEstimate(槽位最大预估值)和满足最大region中所有execution同时运行的slot数量slotMinEstimate(槽位最小预估值),一个区域region包括多个execution,在一个执行图ExecutionGraph的生命周期中,一个ExecutionVertex可以被执行(重启)多次,每次则称为一个execution,执行图ExecutionGraph中包含的节点称为ExecutionJobVertex,对应数据流图JobGrap的一个子任务节点JobVertex,ExecutionJobVertex可以有多个并行实例,即ExecutionVertex,对应一个SubTask。槽位最大预估值slotMaxEstimate具体可以通过如下方法计算:计算上述region中所有slotsharinggroup(slot共享组)中最大并行度的和,即为槽位最大预估值。槽位最小预估值slotMinEstimate具体可以通过如下方法计算:先计算所有region所需slot数量,然后求这些slot数量中的最大值。
任务协调器Jobmaster在预估得到slotMaxEstimate和slotMinEstimate之后,再与用户指定的初始slot数量进行合并,得到最终的job运行时最大占用slot数量,具体地,合并是指按照预设规则来确定目标任务运行时的最大占用槽位数量,具体步骤包括:如果用户指定的初始slot数量<slotMinEstimate,则以槽位最小预估值作为目标任务运行时的最大占用槽位数量;如果用户指定的初始slot数量>slotMaxEstimate,则以槽位最大预估值作为目标任务运行时的最大占用槽位数量;如果slotMinEstimate≤用户指定的初始slot数量≤slotMaxEstimate,则以用户指定的初始槽位数量作为目标任务运行时的最大占用槽位数量。
在资源管理器ResourceManager与该jobmaster建立连接时,将jobId(任务标识)和job运行时最大占用slot数量注册到slot管理器slotmanager(即槽位管理器)。
通过上述过程完成了槽位预估。下面对资源隔离进行介绍。任务协调器Jobmaster开始对job进行调度时,将slot请求(槽位请求)发送到资源管理器ResourceManager,资源管理器ResourceManager上注册有job和job运行时最大占用slot数量,以及job和job当前所独占的任务执行节点TaskManager的映射关系。ResourceManager在满足slot请求时,首先检查当前slot请求所属的job运行时最大占用slot数量,根据这个值计算出job需要独占的任务执行节点TaskManager的数量,检查当前job所独占的任务执行节点TaskManager数量是否足够,即判断是否达到job需要独占的任务执行节点TaskManager的数量,如果不够,则从已注册到资源管理器ResourceManager的任务执行节点TaskManager中寻找未被任何job独占的TaskManager,将其标记为被当前job独占。最后从当前job已独占的TaskManager中应用配置的slot分配策略找到合适的slot,指派给slot请求,以在该槽位执行当前job。当job正常结束或出现异常时,都需要将job所独占的TaskManager进行释放。
本发明实施例的异常情况处理,主要分为JobManager(集群管理器)出现异常、ResourceManager(资源管理器)出现异常、TaskManager(任务执行节点)出现异常失联等情况,下面分别进行介绍。
当集群管理器JobManager出现异常时,任务全部失败重启,任务执行节点TaskManager会释放所有的slot,当新的集群管理器JobManager leader(指实际执行任务调度的一个集群管理器)当选之后,从zookeeper(一个分布式服务框架)获取到任务的状态为running(运行),会重新对任务进行调度,调度过程与任务第一次运行时的调度过程相同,资源管理器ResourceManager和任务协调器jobmaster失去连接之后需要清理job与任务执行节点TaskManager的绑定关系,具体可以在Flink提供的方法closeJobManagerConnection中进行清理。
当资源管理器ResourceManager出现异常时,任务不重启,此时,任务执行节点TaskManager检测到资源管理器ResourceManager心跳超时之后,任务执行节点TaskManager会重新寻找资源管理器ResourceManager的leader(指实际负责任务调度时的槽位分配的资源管理器)。当新的ResourceManager当选leader之后,任务执行节点TaskManager会向该新的ResourceManager重新注册。该新的ResourceManager上没有job与TaskManager的映射关系,需要对映射关系进行重建,新的资源管理器ResourceManager可以根据任务执行节点TaskManager发送的slot report(槽位报告,其中记录有报告的当前TaskManager能提供的槽位数量)重建job与TaskManager的映射关系。
当任务执行节点TaskManager出现异常失联之后,资源管理器ResourceManager检测到任务执行节点TaskManager心跳超时,调用Flink资源管理器ResourceManager提供的方法closeTaskManagerConnection断开连接,其中会调用slotmanagerimpl的unregisterTaskManager方法,在其中解除job与失联TaskManager的绑定,slotmanager即槽位管理器,是Flink提供的组件,unregisterTaskManager方法用于取消TaskManager注册。任务会重启,重启的任务使用slotpool中的availableslot,slotpool表示任务执行节点TaskManager提供的所有槽位,availableslot表示剩余可用的槽位,若槽位slot不够则会向ResourceManager(资源管理器)请求新的槽位slot,然后调用Flink提供的方法OccupyTaskManagerForJob,去占用新的TaskManager(任务执行节点)。
新注册的任务执行节点TaskManager在资源管理器ResourceManager端注册成功后,任务执行节点TaskManager主动与资源管理器ResourceManager建立连接,调用方法sendSlotReport,最终调用slot管理器实现类slotManagerImpl的方法registerTaskManager,注册slot信息,sendSlotReport方法用于报告当前TaskManager能提供的slot数量,registerTaskManager方法用于注册任务执行节点,具体包括注册任务执行节点中的槽位信息。如果此时有某个job的slot请求(例如pendingSlotRequest)匹配slot,将该TaskManager标记为被该job独占。
图3是根据本发明一个实施例的任务执行装置的主要模块示意图。
如图3所示,本发明一个实施例的任务执行装置300主要包括:任务执行节点数量计算模块301、任务执行节点标记模块302、任务执行模块303。
任务执行节点数量计算模块301,用于根据目标任务运行时的最大占用槽位数量以及每个任务执行节点提供的槽位数量,计算目标任务需要独占的任务执行节点数量,其中,槽位用于执行任务;
任务执行节点标记模块302,用于若目标任务当前已独占的任务执行节点数量未达到目标任务需要独占的任务执行节点数量,则根据目标任务需要独占的任务执行节点数量与目标任务当前已独占的任务执行节点数量的差值,从未被任何任务独占的任务执行节点中查找目标任务可独占的任务执行节点,并将可独占的任务执行节点标记为被目标任务独占;
任务执行模块303,用于在目标任务独占的所有任务执行节点中查找槽位以执行目标任务,目标任务独占的所有任务执行节点包括目标任务当前已独占的任务执行节点和可独占的任务执行节点。
目标任务可部署在Flink集群中。
任务执行装置300还包括槽位预估模块,用于:计算目标任务的槽位最大预估值和槽位最小预估值,槽位最大预估值等于目标任务对应的流式执行区域中所有槽位共享组中最大并行度的和,目标任务对应的流式执行区域是目标任务的数据流图中子任务节点所属的流式执行区域;槽位最小预估值等于目标任务对应的各流式执行区域所需的槽位数量之中的最大值;根据目标任务的槽位最大预估值和槽位最小预估值以及用户指定的初始槽位数量,按照预设规则确定目标任务运行时的最大占用槽位数量。
槽位预估模块包括槽位数量计算子模块,用于:如果用户指定的初始槽位数量小于槽位最小预估值,则以槽位最小预估值作为目标任务运行时的最大占用槽位数量;如果用户指定的初始槽位数量大于槽位最大预估值,则以槽位最大预估值作为目标任务运行时的最大占用槽位数量;如果用户指定的初始槽位数量大于或等于槽位最小预估值且小于或等于槽位最大预估值,则以用户指定的初始槽位数量作为目标任务运行时的最大占用槽位数量。
任务执行节点标记模块302具体可以用于:通过Flink集群中的资源管理器从已注册到资源管理器的任务执行节点中寻找未被任何任务独占的任务执行节点,并标记为被目标任务独占,资源管理器中注册有任务和该任务运行时的最大占用槽位数量,以及该任务与该任务当前已独占的任务执行节点之间的映射关系。
任务执行装置300还可以包括任务执行节点释放模块,用于若目标任务执行成功或执行过程中出现异常,则释放目标任务独占的所有任务执行节点。
在一个实施例中,任务执行装置300还可以包括第一异常处理模块,用于若目标任务执行过程中Flink集群的集群管理器出现异常,则释放目标任务独占的所有任务执行节点之后,由Flink集群中资源管理器与任务协调器失去连接后,清理目标任务与独占的所有任务执行节点之间的绑定关系。
在一个实施例中,任务执行装置300还可以包括第二异常处理模块,用于若目标任务执行过程中Flink集群的资源管理器出现异常,通过目标任务独占的任务执行节点向Flink集群中新的资源管理器注册,新的资源管理器根据目标任务独占的任务执行节点发送的槽位报告重建目标任务与所独占的任务执行节点之间的映射关系。
第二异常处理模块还用于:在目标任务独占的任务执行节点向Flink集群中新的资源管理器注册成功之后,由目标任务独占的任务执行节点主动与新的资源管理器建立连接,并调用槽位管理器实现类的用于注册槽位信息的方法,注册目标任务独占的任务执行节点的槽位信息。
在一个实施例中,任务执行装置300还可以包括第三异常处理模块,用于若目标任务执行过程中目标任务独占的任务执行节点出现异常,通过Flink集群中的资源管理器解除与出现异常的任务执行节点的绑定关系。
上述第一异常处理模块、第二异常处理模块、第三异常处理模块中的任意两个或三个在同一实施例中时,可以用统一的一个异常处理模块来实现。
另外,在本发明实施例中所述任务执行装置的具体实施内容,在上面所述任务执行方法中已经详细说明了,故在此重复内容不再说明。
图4示出了可以应用本发明实施例的任务执行方法或任务执行装置的示例性***架构400。
如图4所示,***架构400可以包括终端设备401、402、403,网络404和服务器405。网络404用以在终端设备401、402、403和服务器405之间提供通信链路的介质。网络404可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备401、402、403通过网络404与服务器405交互,以接收或发送消息等。终端设备401、402、403上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备401、402、403可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器405可以是提供各种服务的服务器,例如对用户利用终端设备401、402、403所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息--仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的任务执行方法一般由服务器405执行,相应地,任务执行装置一般设置于服务器405中。
应该理解,图4中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图5,其示出了适于用来实现本申请实施例的终端设备或服务器的计算机***500的结构示意图。图5示出的终端设备或服务器仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图5所示,计算机***500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有***500操作所需的各种程序和数据。CPU 501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
特别地,根据本发明公开的实施例,上文参考主要步骤示意图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行主要步骤示意图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被中央处理单元(CPU)501执行时,执行本申请的***中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的主要步骤示意图和框图,图示了按照本申请各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,主要步骤示意图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或主要步骤示意图中的每个方框、以及框图或主要步骤示意图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括任务执行节点数量计算模块、任务执行节点标记模块、任务执行模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,任务执行节点数量计算模块还可以被描述为“用于根据目标任务运行时的最大占用槽位数量以及每个任务执行节点提供的槽位数量,计算所述目标任务需要独占的任务执行节点数量的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:根据目标任务运行时的最大占用槽位数量以及每个任务执行节点提供的槽位数量,计算所述目标任务需要独占的任务执行节点数量,其中,槽位用于执行任务;若所述目标任务当前已独占的任务执行节点数量未达到所述目标任务需要独占的任务执行节点数量,则根据所述目标任务需要独占的任务执行节点数量与所述目标任务当前已独占的任务执行节点数量的差值,从未被任何任务独占的任务执行节点中查找所述目标任务可独占的任务执行节点,并将所述可独占的任务执行节点标记为被所述目标任务独占;在所述目标任务独占的所有任务执行节点中查找槽位以执行所述目标任务,所述目标任务独占的所有任务执行节点包括所述目标任务当前已独占的任务执行节点和所述可独占的任务执行节点。
根据本发明实施例的技术方案,能够使得多任务混合部署实现在TaskManager级别的资源隔离,任务独享所占用的TaskManager,避免任务出现异常时互相影响,并且通过在任务提交运行之前对任务所需槽位数量进行预估,用户可以以槽位数量预估值作为参考来指定任务运行时所需资源数。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (20)

1.一种任务执行方法,其特征在于,包括:
根据目标任务运行时的最大占用槽位数量以及每个任务执行节点提供的槽位数量,计算所述目标任务需要独占的任务执行节点数量,其中,槽位用于执行任务;
若所述目标任务当前已独占的任务执行节点数量未达到所述目标任务需要独占的任务执行节点数量,则根据所述目标任务需要独占的任务执行节点数量与所述目标任务当前已独占的任务执行节点数量的差值,从未被任何任务独占的任务执行节点中查找所述目标任务可独占的任务执行节点,并将所述可独占的任务执行节点标记为被所述目标任务独占;
在所述目标任务独占的所有任务执行节点中查找槽位以执行所述目标任务,所述目标任务独占的所有任务执行节点包括所述目标任务当前已独占的任务执行节点和所述可独占的任务执行节点。
2.根据权利要求1所述的方法,其特征在于,所述目标任务部署在Flink集群中;
所述计算所述目标任务需要独占的任务执行节点数量之前,包括:
计算所述目标任务的槽位最大预估值和槽位最小预估值,所述槽位最大预估值等于所述目标任务对应的流式执行区域中所有槽位共享组中最大并行度的和,所述目标任务对应的流式执行区域是所述目标任务的数据流图中子任务节点所属的流式执行区域;所述槽位最小预估值等于所述目标任务对应的各流式执行区域所需的槽位数量之中的最大值;
根据所述目标任务的槽位最大预估值和槽位最小预估值以及用户指定的初始槽位数量,按照预设规则确定所述目标任务运行时的最大占用槽位数量。
3.根据权利要求2所述的方法,其特征在于,所述按照预设规则确定所述目标任务运行时的最大占用槽位数量,包括:
如果所述用户指定的初始槽位数量小于所述槽位最小预估值,则以所述槽位最小预估值作为所述目标任务运行时的最大占用槽位数量;
如果所述用户指定的初始槽位数量大于所述槽位最大预估值,则以所述槽位最大预估值作为所述目标任务运行时的最大占用槽位数量;
如果所述用户指定的初始槽位数量大于或等于所述槽位最小预估值且小于或等于所述槽位最大预估值,则以所述用户指定的初始槽位数量作为所述目标任务运行时的最大占用槽位数量。
4.根据权利要求2所述的方法,其特征在于,所述从未被任何任务独占的任务执行节点中查找所述目标任务可独占的任务执行节点,并将所述可独占的任务执行节点标记为被所述目标任务独占,包括:
Flink集群中的资源管理器从已注册到所述资源管理器的任务执行节点中寻找未被任何任务独占的任务执行节点,并标记为被所述目标任务独占,所述资源管理器中注册有任务和该任务运行时的最大占用槽位数量,以及该任务与该任务当前已独占的任务执行节点之间的映射关系。
5.根据权利要求2所述的方法,其特征在于,若所述目标任务执行成功或执行过程中出现异常,则释放所述目标任务独占的所有任务执行节点。
6.根据权利要求5所述的方法,其特征在于,若所述目标任务执行过程中所述Flink集群的集群管理器出现异常,则所述释放所述目标任务独占的所有任务执行节点之后,还包括:
所述Flink集群中资源管理器与任务协调器失去连接后,清理所述目标任务与独占的所有任务执行节点之间的绑定关系。
7.根据权利要求5所述的方法,其特征在于,若所述目标任务执行过程中所述Flink集群的资源管理器出现异常,所述方法还包括:
所述目标任务独占的任务执行节点向所述Flink集群中新的资源管理器注册,所述新的资源管理器根据所述目标任务独占的任务执行节点发送的槽位报告重建所述目标任务与所独占的任务执行节点之间的映射关系。
8.根据权利要求7所述的方法,其特征在于,所述目标任务独占的任务执行节点向所述Flink集群中新的资源管理器注册成功之后,所述方法还包括:
所述目标任务独占的任务执行节点主动与所述新的资源管理器建立连接,并调用槽位管理器实现类的用于注册槽位信息的方法,注册所述目标任务独占的任务执行节点的槽位信息。
9.根据权利要求5所述的方法,其特征在于,若所述目标任务执行过程中所述目标任务独占的任务执行节点出现异常,所述方法还包括:
所述Flink集群中的资源管理器解除与出现异常的任务执行节点的绑定关系。
10.一种任务执行装置,其特征在于,包括:
任务执行节点数量计算模块,用于根据目标任务运行时的最大占用槽位数量以及每个任务执行节点提供的槽位数量,计算所述目标任务需要独占的任务执行节点数量,其中,槽位用于执行任务;
任务执行节点标记模块,用于若所述目标任务当前已独占的任务执行节点数量未达到所述目标任务需要独占的任务执行节点数量,则根据所述目标任务需要独占的任务执行节点数量与所述目标任务当前已独占的任务执行节点数量的差值,从未被任何任务独占的任务执行节点中查找所述目标任务可独占的任务执行节点,并将所述可独占的任务执行节点标记为被所述目标任务独占;
任务执行模块,用于在所述目标任务独占的所有任务执行节点中查找槽位以执行所述目标任务,所述目标任务独占的所有任务执行节点包括所述目标任务当前已独占的任务执行节点和所述可独占的任务执行节点。
11.根据权利要求10所述的装置,其特征在于,所述目标任务部署在Flink集群中;
所述装置还包括槽位预估模块,用于:
计算所述目标任务的槽位最大预估值和槽位最小预估值,所述槽位最大预估值等于所述目标任务对应的流式执行区域中所有槽位共享组中最大并行度的和,所述目标任务对应的流式执行区域是所述目标任务的数据流图中子任务节点所属的流式执行区域;所述槽位最小预估值等于所述目标任务对应的各流式执行区域所需的槽位数量之中的最大值;
根据所述目标任务的槽位最大预估值和槽位最小预估值以及用户指定的初始槽位数量,按照预设规则确定所述目标任务运行时的最大占用槽位数量。
12.根据权利要求11所述的装置,其特征在于,所述槽位预估模块包括槽位数量计算子模块,用于:
如果所述用户指定的初始槽位数量小于所述槽位最小预估值,则以所述槽位最小预估值作为所述目标任务运行时的最大占用槽位数量;
如果所述用户指定的初始槽位数量大于所述槽位最大预估值,则以所述槽位最大预估值作为所述目标任务运行时的最大占用槽位数量;
如果所述用户指定的初始槽位数量大于或等于所述槽位最小预估值且小于或等于所述槽位最大预估值,则以所述用户指定的初始槽位数量作为所述目标任务运行时的最大占用槽位数量。
13.根据权利要求11所述的装置,其特征在于,所述任务执行节点标记模块还用于:
通过Flink集群中的资源管理器从已注册到所述资源管理器的任务执行节点中寻找未被任何任务独占的任务执行节点,并标记为被所述目标任务独占,所述资源管理器中注册有任务和该任务运行时的最大占用槽位数量,以及该任务与该任务当前已独占的任务执行节点之间的映射关系。
14.根据权利要求11所述的装置,其特征在于,还包括任务执行节点释放模块,用于若所述目标任务执行成功或执行过程中出现异常,则释放所述目标任务独占的所有任务执行节点。
15.根据权利要求14所述的装置,其特征在于,还包括第一异常处理模块,用于若所述目标任务执行过程中所述Flink集群的集群管理器出现异常,则所述释放所述目标任务独占的所有任务执行节点之后,由所述Flink集群中资源管理器与任务协调器失去连接后,清理所述目标任务与独占的所有任务执行节点之间的绑定关系。
16.根据权利要求14所述的装置,其特征在于,还包括第二异常处理模块,用于若所述目标任务执行过程中所述Flink集群的资源管理器出现异常,通过所述目标任务独占的任务执行节点向所述Flink集群中新的资源管理器注册,所述新的资源管理器根据所述目标任务独占的任务执行节点发送的槽位报告重建所述目标任务与所独占的任务执行节点之间的映射关系。
17.根据权利要求16所述的装置,其特征在于,所述第二异常处理模块还用于:在所述目标任务独占的任务执行节点向所述Flink集群中新的资源管理器注册成功之后,由所述目标任务独占的任务执行节点主动与所述新的资源管理器建立连接,并调用槽位管理器实现类的用于注册槽位信息的方法,注册所述目标任务独占的任务执行节点的槽位信息。
18.根据权利要求14所述的装置,其特征在于,还包括第三异常处理模块,用于若所述目标任务执行过程中所述目标任务独占的任务执行节点出现异常,通过所述Flink集群中的资源管理器解除与出现异常的任务执行节点的绑定关系。
19.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1-9中任一所述的方法。
20.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-9中任一所述的方法。
CN202210466320.0A 2022-04-29 2022-04-29 一种任务执行方法和装置 Pending CN117009063A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210466320.0A CN117009063A (zh) 2022-04-29 2022-04-29 一种任务执行方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210466320.0A CN117009063A (zh) 2022-04-29 2022-04-29 一种任务执行方法和装置

Publications (1)

Publication Number Publication Date
CN117009063A true CN117009063A (zh) 2023-11-07

Family

ID=88574917

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210466320.0A Pending CN117009063A (zh) 2022-04-29 2022-04-29 一种任务执行方法和装置

Country Status (1)

Country Link
CN (1) CN117009063A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117278424A (zh) * 2023-11-17 2023-12-22 广州市玄武无线科技股份有限公司 一种Flink集群的部署方法、装置、设备以及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117278424A (zh) * 2023-11-17 2023-12-22 广州市玄武无线科技股份有限公司 一种Flink集群的部署方法、装置、设备以及存储介质

Similar Documents

Publication Publication Date Title
CN108737270B (zh) 一种服务器集群的资源管理方法和装置
US20220075643A1 (en) Unified resource management for containers and virtual machines
US10713080B1 (en) Request-based virtual machine memory transitioning in an on-demand network code execution system
US10216545B2 (en) Method and system for modeling and analyzing computing resource requirements of software applications in a shared and distributed computing environment
US10394477B2 (en) Method and system for memory allocation in a disaggregated memory architecture
US8914805B2 (en) Rescheduling workload in a hybrid computing environment
JP6618614B2 (ja) 分散型ストリームベースのデータベーストリガ
US8739171B2 (en) High-throughput-computing in a hybrid computing environment
US8819683B2 (en) Scalable distributed compute based on business rules
US20130061220A1 (en) Method for on-demand inter-cloud load provisioning for transient bursts of computing needs
CN109117252B (zh) 基于容器的任务处理的方法、***及容器集群管理***
US20120096457A1 (en) System, method and computer program product for preprovisioning virtual machines
US20140282582A1 (en) Detecting deployment conflicts in heterogenous environments
CN108021435B (zh) 一种基于截止时间的具有容错能力的云计算任务流调度方法
JP2015011716A (ja) グリッドコンピューティングシステムの遊休リソースによるタスク実行
CN110166507B (zh) 多资源调度方法和装置
CN109218356B (zh) 管理服务器上有状态应用的方法和设备
US11816469B2 (en) Resolving the version mismatch problem when implementing a rolling update in an open-source platform for container orchestration
US11245748B1 (en) Proxied nodes in a container orchestration environment for scalable resource allocation
US20150100967A1 (en) Resolving deployment conflicts in heterogeneous environments
CN114296953B (zh) 一种多云异构***及任务处理方法
US11748168B2 (en) Flexible batch job scheduling in virtualization environments
US8812578B2 (en) Establishing future start times for jobs to be executed in a multi-cluster environment
CN117009063A (zh) 一种任务执行方法和装置
US20220382601A1 (en) Configuration map based sharding for containers in a machine learning serving infrastructure

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