CN114579286A - 任务调度系统、方法、设备及存储介质 - Google Patents

任务调度系统、方法、设备及存储介质 Download PDF

Info

Publication number
CN114579286A
CN114579286A CN202210481629.7A CN202210481629A CN114579286A CN 114579286 A CN114579286 A CN 114579286A CN 202210481629 A CN202210481629 A CN 202210481629A CN 114579286 A CN114579286 A CN 114579286A
Authority
CN
China
Prior art keywords
data node
subtask
task
subtasks
task queue
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
CN202210481629.7A
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.)
Alipay Hangzhou Information Technology Co Ltd
Original Assignee
Alipay Hangzhou 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 Alipay Hangzhou Information Technology Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Priority to CN202210481629.7A priority Critical patent/CN114579286A/zh
Publication of CN114579286A publication Critical patent/CN114579286A/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
    • 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/505Allocation 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 load
    • 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/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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/5083Techniques for rebalancing the load in a distributed system
    • 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
    • G06F2009/4557Distribution 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)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本说明书一个或多个实施例提供一种任务调度系统、方法、设备及存储介质,任务调度系统包括第一数据节点和多个第二数据节点;第一数据节点包括第一任务队列,第一任务队列指示未分配且待执行的若干子任务;第二数据节点用于执行第一数据节点分配的子任务;以及每执行完一个子任务之后向第一数据节点发送子任务获取请求;第一数据节点用于在非首次子任务分配过程中,若第一任务队列非空,响应于子任务获取请求,根据第一任务队列获取新的子任务,并将新的子任务调度到第二数据节点上。有利于提高运行效率。

Description

任务调度系统、方法、设备及存储介质
技术领域
本说明书一个或多个实施例涉及分布式计算技术领域,尤其涉及一种任务调度系统、方法、设备及存储介质。
背景技术
在相关运营平台中,随着用户规模逐渐扩大,运营平台中需要执行的任务数量也逐渐增加。相关技术中针对于若干个待执行任务的调度方式通常是:在具有多个数据节点的情况下,事先一次性将若干个待执行任务分配到不同的数据节点上,每个数据节点上执行多个任务,直到该数据节点将分配的任务执行完。但是,每个数据节点的性能不同,启动时间也不同,该种调度方式的运行效率不高。
发明内容
有鉴于此,本说明书一个或多个实施例提供一种任务调度系统、方法、设备及存储介质。
为实现上述目的,本说明书一个或多个实施例提供技术方案如下:
根据本说明书一个或多个实施例的第一方面,提出了一种任务调度系统,所述任务调度系统包括第一数据节点和多个第二数据节点;所述第一数据节点包括第一任务队列,所述第一任务队列指示未分配且待执行的若干子任务;所述第二数据节点用于执行所述第一数据节点分配的子任务;以及每执行完一个所述子任务之后向所述第一数据节点发送子任务获取请求;
所述第一数据节点用于在非首次子任务分配过程中,若所述第一任务队列非空,响应于所述子任务获取请求,根据所述第一任务队列获取新的子任务,并将所述新的子任务调度到所述第二数据节点上。
根据本说明书一个或多个实施例的第二方面,提出了一种任务调度方法,应用于任务调度系统,所述任务调度系统包括第一数据节点和多个第二数据节点;所述方法由所述第一数据节点执行,所述第一数据节点包括第一任务队列,所述第一任务队列指示未分配且待执行的若干子任务;
所述方法包括:
接收所述第二数据节点每执行完一个所述子任务之后发送的子任务获取请求;
若所述第一任务队列非空,响应于所述子任务获取请求,根据所述第一任务队列获取新的子任务,并将所述新的子任务调度到所述第二数据节点上。
根据本说明书一个或多个实施例的第三方面,提出了一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现第二方面所述的方法。
根据本说明书一个或多个实施例的第四方面,提出了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如第二方面所述方法的步骤。
本说明书一个或多个实施例提供一种任务调度系统来调度运行若干子任务。所述任务调度系统包括有第一数据节点和多个第二数据节点,进一步地,由第二数据节点每执行完一个子任务之后主动向第一数据节点申请新的子任务来执行,而不是第一数据节点一次性将所有的子任务分配完毕,采用动态分配任务的方式实现性能好的第二数据节点能够运行更多的子任务,从而有利于提高运行效率。
附图说明
图1和图2是一示例性实施例提供的任务调度系统的两种不同结构示意图。
图3是一示例性实施例提供的K8s集群的结构示意图。
图4和图5是一示例性实施例提供的任务调度系统应用于K8s集群的两种不同结构示意图。
图6和图7是一示例性实施例提供的任务调度方法的两种不同的流程示意图。
图8是一示例性实施例提供的一种电子设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
基于相关技术中的问题,请参阅图1,针对于若干待执行的子任务,本说明书实施例提供了一种任务调度系统,所述任务调度系统包括第一数据节点10和多个第二数据节点20;所述第一数据节点10包括第一任务队列,所述第一任务队列指示未分配且待执行的若干子任务。
所述第二数据节点20用于执行所述第一数据节点10分配的子任务;以及每执行完一个所述子任务之后向所述第一数据节点10发送子任务获取请求。
所述第一数据节点10用于若所述第一任务队列非空,响应于所述子任务获取请求,根据所述第一任务队列获取新的子任务,并将所述新的子任务调度到所述第二数据节点20上。
本实施例采用动态分配任务的方式实现性能好的第二数据节点20能够运行更多的子任务,从而提高任务运行效率。
其中,所述若干子任务之间可以存在关联关系,或者,所述若干子任务之间也可以互不相关。本实施例对此不做任何限制。无论若干子任务是否存在关联关系,所述任务调度系统所提供的调度方式均适用。
示例性的,在所述若干子任务之间存储关联关系的情况下,比如所述若干子任务从一个运筹优化任务中分解得到;其中,所述运筹优化任务含有M个决策变量,每个所述子任务用于求解所述运筹优化任务中的N个决策变量, N小于M且N、M均为大于0的整数。以下以所述若干子任务存在关联关系进行示例性说明:
运筹优化任务在于如何以最经济的成本获得理想的收益。在社会生活中运筹优化任务无处不在。比如在出行前选择行车路线,这是一个简单的路径优化问题,如果还要选择换成车辆以及换乘地点,就需要求解一个完整的优化调度问题。
在相关运营平台中,随着需要维护的用户数量也越来越多,运筹优化任务的规模也越来越大。示例性的,在金融管理平台中,可以将运筹优化方法应用于金融风险控制与管理、资产评估与管理、定价分析等方面,比如针对于每个用户维度进行资产方面的运筹优化分析,在用户数量众多的情况下,这样的运筹优化任务可能涉及几千、几万甚至上亿个决策变量。如此大规模的运筹优化任务如何在有限的资源中调度运行,是一个挑战巨大的问题。
在一个例子中,通常用户需要向银行贷款,银行会根据用户的风险等级来确定每 个用户的贷款额度。假设有2亿用户,用i表示,需要向10家银行贷款,用j表示,每家银行对 每个用户进行贷款评估,确定一个通过率,用
Figure 140042DEST_PATH_IMAGE001
表示,每个用户有额度限制,用
Figure 260444DEST_PATH_IMAGE002
表示,每 个用户有风险等级,用
Figure 631994DEST_PATH_IMAGE003
表示,每家银行有风险金额上限控制,记录为
Figure 89520DEST_PATH_IMAGE004
。假设现在需要 决策每家银行向每个用户审批多少贷款额度,记为
Figure 248100DEST_PATH_IMAGE005
,目标是最大化通过率(即希望用户 能最大化审批额度)。则可以描述为以下运筹优化任务,该运筹优化任务和约束条件可以通 过以下公式表示:
Figure 539404DEST_PATH_IMAGE006
;(1)
Figure 134333DEST_PATH_IMAGE007
;(2)
Figure 802075DEST_PATH_IMAGE008
;(3)
其中,公式(1)的优化目标是最大化用户通过率,在2亿用户需要向10家银行贷款 的情况下,则一共需要求解20亿个决策变量
Figure 313697DEST_PATH_IMAGE009
。约束条件包括两种:第一种为每个用户的 贷款额度不能超过上限(公式(2)),第二种为每个银行的风险金额不能超过上限(公式 (3))。
针对于上述涉及大量决策变量的运筹优化任务,相关技术中的开源单机求解器如gurobi,商业求解器如cplex、mindopt等都无法求解如此大规模的线性规划问题。并且如此大规模的运筹优化任务如何在有限的资源中调度运行,是一个挑战巨大的问题。
基于相关技术中的问题,本说明书实施例实现可以将上述的大规模运筹优化任务分割成若干并行的子任务,每个子任务用于求解一部分决策变量,并且保证每个子任务的系数分布一致,比如具有相同类型的约束条件。进一步地,本说明书实施例提供一种任务调度系统来调度运行上述分割得到的若干子任务。所述任务调度系统包括有第一数据节点10和多个第二数据节点20,所述第一数据节点10起到管理以及调度若干子任务的作用,多个第二数据节点20用于并行执行多个子任务,从而提高大规模运筹优化任务的总体运行效率。
进一步地,第二数据节点20每执行完一个子任务之后主动向第一数据节点10申请新的子任务来执行,采用动态分配任务的方式实现性能好的第二数据节点20能够运行更多的子任务,进一步提高大规模运筹优化任务的总体运行效率。
在对大规模运筹优化任务进行分割时,本说明书实施例实现从数据维度进行拆分,并保证拆分得到的每个子任务的系数分布一致,每个子任务的系数包括本子任务的约束和优化目标,每个子问题的系数分布一致可以理解为每个子问题的约束和优化目标属于同一种类型。在一个例子中,以上述的贷款例子进行继续说明,上述的2亿用户向10家银行贷款的运筹优化任务,一种有20亿个决策变量,可以拆分成以下子任务:每2万个用户向10家银行贷款的子任务,该子任务有20万个决策变量,则一共有1万个这样的子任务,每个子任务的优化目标都是最大化用户通过率,约束条件包括两种:第一种为每个用户的贷款额度不能超过上限,第二种为每个银行的风险金额不能超过上限。
请参阅图1,本说明书实施例提供了一种任务调度系统,所述任务调度系统用于调度运行由具有M个决策变量的运筹优化任务分割得到的若干子任务,所述子任务包括有N个决策变量,N小于M且N、M均为大于0的整数。所述任务调度系统包括第一数据节点10和多个第二数据节点20。多个第二数据节点20可以并行执行子任务,有利于提高运筹优化任务的运行效率。
所述第一数据节点10可以根据所述若干子任务初始化第一任务队列,所述第一任务队列指示未分配且待执行的若干子任务。示例性的,所述第一任务队列包括有未分配且待执行的若干子任务的唯一标识。
所述第一数据节点10用于在首次子任务分配过程中,根据所述第一任务队列向各个所述第二数据节点20分配其一次能够执行的至少一个子任务。
所述第二数据节点20用于执行所述第一数据节点10分配的子任务;以及每执行完一个所述子任务之后向所述第一数据节点10发送子任务获取请求。
所述第一数据节点10还用于在非首次子任务分配过程中,若所述第一任务队列非空,响应于所述子任务获取请求,根据所述第一任务队列获取新的子任务,并将所述新的子任务调度到所述第二数据节点20上。
本实施例中,第一数据节点10在首次进行任务分配时仅向各个第二数据节点20分配其一次能够执行的至少一个子任务,后续由第二数据节点20每执行完一个子任务之后主动向第一数据节点10申请新的子任务来执行,采用动态分配任务的方式实现性能好的第二数据节点20能够运行更多的子任务,提高了大规模运筹优化任务的总体运行效率。
在一些实施例中,所述第二数据节点20能够串行执行所述子任务,则所述第二数据节点20一次能够执行的子任务数量为一个。
在另一些实施例中,考虑到第二数据节点20的运行资源可能大于所述子任务所需的执行资源,若采用串行执行的方式,在所述数据节点一次只执行一个子任务的情况下还存在空闲资源未被使用,存在资源浪费情况。因为,为实现对各个第二数据节点20中的运行资源的充分利用,本说明书实施例对每个第二数据节点20进行进程维度拆分,所述第二数据节点20可以启动至少一个进程,每个进程用于运行一个子任务,从而可以利用启动的多个进程来并行执行多个子任务,实现对各个第二数据节点20中的运行资源的充分利用基础上进一步扩大子任务并行执行数量,提高运筹优化任务的运行效率。
其中,所述第二数据节点20一次能够并行执行的子任务数量取决于第二数据节点20中的进程数量,换句话说,所述第二数据节点20一次能够并行执行的子任务数量与所述第二数据节点20中的进程数量相同;而第二数据节点20中能够启动的进程的数量根据所述第二数据节点20的总资源和执行所述子任务所需资源确定。
在一个例子中,设第二数据节点20能够申请到的总资源为R,每个子任务所需的资源为r,假设各个子任务所需的资源相同,则每个第二数据节点20中能够启动的进程数(或者说每个第二数据节点20一次能够并行执行的子任务数量)为p=int(R/r),其中,int函数表示将一个要取整的实数向下取整为最接近的整数,从而保证每个子任务都有充足的资源来运行。
示例性的,所述第一数据节点10在首次根据所述第一任务队列向各个所述第二数据节点20分配其一次能够并行执行的至少一个子任务之后,所述第二数据节点20能够根据所述第一数据节点10分配的至少一个子任务对应启动至少一个进程,每个进程用于执行一个所述子任务,从而扩大子任务并行执行数量,有利于提高运筹优化任务的运行效率。
在一些实施例中,请参阅图2,所述第一任务队列包括有若干未分配且待执行的子任务分别对应的唯一标识。所述第一数据节点10在首次根据所述第一任务队列向各个所述第二数据节点20分配其一次能够并行执行的至少一个子任务之后,可以将已分配的子任务的唯一标识从第一任务队列中删除;然后第一数据节点10可以将已分配的子任务的唯一标识添加到第二任务队列中,所述第二任务队列指示已分配的子任务,所述第二任务队列可以包括有已分配的子任务的唯一标识,并且所述第一数据节点10可以在所述第二任务队列中标识已分配的子任务的执行状态为未完成。本实施例通过第二任务队列,实现对已分配的子任务的管理。
在一些可能的实现方式中,所述第一数据节点10在根据所述第一任务队列向各个所述第二数据节点20分配子任务的过程中,可以将待执行的子任务的唯一标识发送给所述第二数据节点20,所述第二数据节点20中的进程可以调用用户接口来执行所述唯一标识所指示的子任务。
在一些实施例中,所述第二数据节点20每执行完一个所述子任务之后,即可向所述第一数据节点10发送子任务获取请求,向第一数据节点10申请一个新的子任务,所述第一数据节点10可以响应于所述子任务获取请求,根据所述第一任务队列获取新的子任务,并将所述新的子任务调度到所述第二数据节点20上。所述第二数据节点20和所述第一数据节点10重复上述动态分配过程直到所述第一任务队列为空,即第一任务队列中的若干子任务已全部分配完成。本实施例采用动态分配子任务的方式实现性能好的第二数据节点20能够运行更多的子任务,提高了子任务的总体运行效率。
在一种可能的实现方式中,以所述第二数据节点20中一个进程执行一个所述子任务为例,每个进程可以与所述第一数据节点10通信连接,每个进程在执行完所述子任务之后,可以向所述第一数据节点10发送子任务获取请求,所述第一数据节点10可以响应于所述子任务获取请求,根据所述第一任务队列获取新的子任务,并将所述新的子任务调度到所述进程中。例如,所述第一数据节点10可以将所述新的子任务的唯一标识发送给所述进程,所述进程可以调用用户接口来执行所述唯一标识所指示的子任务。
在一些实施例中,所述第二数据节点20还可以向所述第一数据节点10上报在本节点上执行的子任务的状态信息;所述状态信息指示在所述第二数据节点20上执行的子任务的执行状态,使得所述第一数据节点10可以对在所述第二数据节点20上执行的子任务进行监控。在所述状态信息指示在所述第二数据节点20上执行的子任务已执行完成的情况下,所述第一数据节点10可以将所述第二任务队列中该子任务的执行状态修改为已完成。
为了进一步提高子任务调度的准确性,所述第一数据节点10在收到所述第二数据节点20发送的子任务获取请求之后,可以检查该第二数据节点20上报的状态信息,在所述状态信息指示在所述第二数据节点20上执行的子任务已执行完成的情况下,才响应于所述子任务获取请求,根据所述第一任务队列获取新的子任务,并将所述新的子任务调度到所述第二数据节点20上,从而保证子任务的准确调度。
示例性的,以所述第二数据节点20中一个进程执行一个所述子任务为例,每个进程可以与所述第一数据节点10通信连接,每个进程可以向所述第一数据节点10上报其执行的子任务的状态信息。所述第一数据节点10在收到所述进程发送的子任务获取请求之后,检查该进程上报的状态信息以确定子任务是否执行完成,在所述状态信息指示所述子任务已执行完成的情况下才响应所述子任务获取请求,根据所述第一任务队列获取目标子任务,并将所述目标子任务调度到所述进程上,从而保证子任务的准确调度。进一步地,所述第一数据节点10可以将所述新的子任务的唯一标识从第一任务队列中删除,并写入所述第二任务队列,并标记所述新的子任务的执行状态为未完成,并且在接收到所述进程上报的状态信息指示所述新的子任务已执行完成的情况下,修改所述目标子任务的执行状态为已完成。
可以理解的是,每个进程对应有指示该进程的唯一标识,使得第一数据节点10能够基于各个进程的唯一标识进行准确有序的子任务调度过程。
在一些实施例中,所述第一数据节点10可以检测各个第二数据节点20的工作状态,比如所述第二数据节点20可以定时向所述第一数据节点10发送心跳包,所述第一数据节点10在收到心跳包的情况下,确定所述第二数据节点20正常运行,在预设时长内未收到第二数据节点20发送的心跳包的情况下,确定所述第二数据节点20异常;又比如所述第二数据节点20可以定时向所述第一数据节点10发送状态信息,在所述状态信息为第一预设值的情况下确定第二数据节点20正常运行,在所述状态信息为第二预设值的情况下确定第二数据节点20异常,所述第一预设值和所述第二预设值可依据实际应用场景进行具体设置。
所述第一数据节点10在确定所述第二数据节点20异常的情况下,可以调用指定接口重启出现异常的第二数据节点20的镜像数据节点,并将在所述第二数据节点20中运行的至少一个子任务分配给所述镜像数据节点,使得该镜像数据节点可以运行相同的子任务,从而有利于提高若干子任务的总体执行成功率,保证子任务执行的稳定性。
在一个示例性的实施例中,上述的分布式系统可以应用于K8s集群,所述第一数据节点10和所述第二数据节点20可以为K8s集群中的两种不同的Pod。
Kubernetes(K8S),是一个开源的容器自动化运维平台,它消除了容器化应用程序在部署、调度和伸缩时涉及到的许多手动操作。一般来说,可以将多台主机组合成集群来运行容器,而Kubernetes则可以简单高效地管理这些集群。构成这些集群的主机可以跨越公有云、私有云以及混合云。因此,对于要求快速扩展的云原生应用而言,Kubernetes是一个理想的托管平台。Kubernetes一个核心的特点就是能够自主地管理容器来保证云平台中的容器按照用户的期望状态运行。
一个Kubernetes集群中,请参阅图3,一般由一个主控节点(Master)和多个工作节点(Node)组成,其中,Master主要负责管理和控制容器,而Node用于部署和运行容器。Node由Master 管理,Node 负责监控并汇报容器的状态,同时根据Master 的要求管理容器的生命周期。Node是K8s 集群中的工作负载节点,每个Node 节点都会被Master节点分配一些工作负载。当某个Node 节点宕机时,其上的工作负载会被Master 节点自动转移到其他Node节点上去。示例性的,Master和Node均运行在Linux的操作系统上,具体地,其可以运行在物理机上,也可以运行在虚拟机上。在一些实施例中,为了实现高可用,在一些Kubernetes集群中,还可以运行有多个Master。
在Master上,运行着集群管理相关的一组进程etcd、API Server、ControllerManager和Scheduler,其中,etcd组件用于持久化存储集群中所有的资源对象,如Node、Service、Pod、RC、Namespace等;而后三个组件则构成了Kubernetes的总控中心,这些进程实现了整个集群的资源管理、Pod调度、弹性伸缩、安全控制、系统监控和纠错等管理功能,并且全都是自动完成的。其中,API Server是集群控制的入口进程,也是所有资源对象的唯一操作入口,其他所有组件都必须通过它提供的API来操作资源数据,通过对相关的资源数据的全量查询和变化监控,其他组件可以实时地完成相关的业务功能。
请参阅图3,在Node上,Kubernetes管理的最小运行单元是一个容器集(Pod)。另外,Node上还运行着Kubernetes的Kubelet、kube-proxy等组件,这些组件负责Pod的创建、启动、监控、重启、销毁、以及实现软件模式的负载均衡。Pod是Kubernetes最基本的操作单元,包含一个或多个紧密相关的容器,一个Pod可以被一个容器化的环境看作应用层的“逻辑宿主机”,Pod中的容器会作为一个整体被Master调度到一个Node上运行。每个Pod里可以运行一个或多个容器化应用,且这些容器化应用之间共享同一组资源,例如PID命名空间、网络命名空间、IPC命名空间、UTS命名空间和共享存储卷(Volumes)等,因此这些应用容器之间的通信和数据交换更为高效,在设计时可以充分利用这一特性将一组密切相关的服务进程放入同一个Pod中。Pod的生命周期通过Replication Controller来管理。首先,Pod通过模板进行定义,然后分配到一个Node上运行,在Pod所包含的容器运行结束后,Pod才结束并销毁。
请参阅图4以及图5,本说明书实施例提供了一种任务调度系统,所述任务调度系统应用于K8s集群。所述第一数据节点10为K8s集群中的第一Pod11,所述第二数据节点20为K8s集群中的第二Pod21;所述任务调度系统包括有第一Pod11和多个第二Pod21。多个第二Pod21提供相同的服务。所述第一Pod11的数量可以是一个或多个,本实施例对此不做任何限制。所述第一Pod11分别与多个第二Pod21通信连接。所述第一Pod11包括第一任务队列,所述第一任务队列指示未分配且待执行的若干子任务;所述若干子任务为将含有M个决策变量的运筹优化任务进行分割得到,每个所述子任务包括有N个决策变量,N小于M且N、M均为大于0的整数。示例性的,所述第一任务队列包括有若干未分配且待执行的子任务分别对应的唯一标识,比如所述子任务的id号。在首次进行子任务分配时,所述第一Pod11可以根据所述第一任务队列向各个所述第二Pod21分配其一次能够并行执行的至少一个子任务。
在一些实施例中,所述第二Pod21包括有一个或多个容器化应用,以一个容器化应用一次执行一个子任务为例,则所述第二Pod21一次能够执行的子任务数量取决于所述第二Pod21所包括的容器化应用的数量。假设第二Pod21中包含有10个容器化应用,10个容器化应用提供相同的服务,则第二Pod21一次能够并行执行的子任务数量为10个。
在另一些实施例中,考虑到各个容器化应用在串行执行子任务的过程中,存在一些资源浪费的情况,即容器化应用的运行资源可能大于所述子任务所需的执行资源。因此,为实现对各个第二Pod21中的运行资源的充分利用,本说明书实施例对每个第二Pod21进行进程维度拆分,所述容器化应用启动至少一个进程,每个进程用于运行一个子任务,从而在实现对各个第二Pod21中的运行资源的充分利用基础上进一步扩大子任务并行执行数量,从而有利于提高子任务运行效率。
则所述第二Pod21一次能够并行执行的子任务数量取决于第二Pod21中的进程数量,换句话说,所述第二Pod21一次能够并行执行的子任务数量与所述第二Pod21中的进程数量相同;而第二Pod21中能够启动的进程的数量根据所述第二Pod21的总资源和执行所述子任务所需资源确定。
可以理解的是,本说明书实施例对于在容器化应用中启动多进程的实现方式不做任何限制,可依据实际应用场景进行具体设置。示例性的,可以使用c++的多进程接口fork技术,然后在fork每个进程里独立执行子任务的启动命令,实现在容器化应用中启动多个进程。
在一些实施例中,请参阅图5,所述第一任务队列包括有若干未分配且待执行的子任务分别对应的唯一标识。所述第一Pod11在首次根据所述第一任务队列向各个所述第二Pod21分配其一次能够并行执行的至少一个子任务之后,可以将已分配的子任务的唯一标识从第一任务队列中删除;然后第一Pod11可以将已分配的子任务的唯一标识添加到第二任务队列中,所述第二任务队列指示已分配的子任务,所述第二任务队列可以包括有已分配的子任务的唯一标识,并且所述第一Pod11可以在所述第二任务队列中标识已分配的子任务的执行状态为未完成。本实施例通过第二任务队列,实现对已分配的子任务的管理。
在一些可能的实现方式中,所述第一Pod11在根据所述第一任务队列向各个所述第二Pod21分配子任务的过程中,可以将待执行的子任务的唯一标识发送给所述第二Pod21,所述第二Pod21中的容器化应用或者进程可以调用用户接口来执行所述唯一标识所指示的子任务。
在一些实施例中,以所述第二Pod21中一个进程执行一个所述子任务为例,每个进程可以与所述第一Pod11通信连接,每个进程在执行完所述子任务之后,可以向所述第一Pod11发送子任务获取请求,所述第一Pod11可以响应于所述子任务获取请求,根据所述第一任务队列获取新的子任务,并将所述新的子任务调度到所述进程中。
每个进程可以向所述第一Pod11上报其执行的子任务的状态信息。所述第一Pod11在收到所述进程发送的子任务获取请求之后,检查该进程上报的状态信息以确定子任务是否执行完成,在所述状态信息指示所述子任务已执行完成的情况下才响应所述子任务获取请求,根据所述第一任务队列获取新的子任务,并将所述新的子任务调度到所述进程上,从而保证子任务的准确调度。进一步地,所述第一Pod11可以将所述新的子任务的唯一标识从第一任务队列中删除,并写入所述第二任务队列,并标记所述新的子任务的执行状态为未完成,并且在接收到所述进程上报的状态信息指示所述新的子任务已执行完成的情况下,修改所述新的子任务的执行状态为已完成。
可以理解的是,每个进程对应有指示该进程的唯一标识,使得第一Pod11能够基于各个进程的唯一标识进行准确有序的子任务调度过程。
在一些实施例中,在确定所述第二Pod21异常的情况下,比如所述第二Pod21未启动或者失败,所述第一Pod11可以调用指定接口重启所述第二Pod21的镜像Pod,并将在所述第二Pod21中运行的至少一个子任务分配给所述镜像Pod,使得该镜像Pod可以运行相同的子任务,从而有利于提高若干子任务的总体执行成功率,保证子任务执行的稳定性。
在一示例性的实施例中,在所述运筹优化任务为线性规划问题生成的情况下,所述第二数据节点在执行所述子任务时,可以使用ADMM算法来求解该子任务,ADMM算法(Alternating Direction Method of Multipliers,交换方向乘子法)可用于解决可分解凸优化问题,适用于大规模的优化问题的求解,利用ADMM算法可以将原始的优化问题等价的分解成若干个可求解的子问题,然后并行求解每一个子问题,最后协调子问题的解得到原优化问题的全局解。
相应地,请参阅图6,本申请实施例还提供了一种任务调度方法,应用于任务调度系统,所述任务调度系统包括第一数据节点和多个第二数据节点;所述方法由所述第一数据节点执行,所述第一数据节点包括第一任务队列,所述第一任务队列指示未分配且待执行的若干子任务;
所述方法包括:
在步骤S101中,接收所述第二数据节点每执行完一个所述子任务之后发送的子任务获取请求;
在步骤S102中,若所述第一任务队列非空,响应于所述子任务获取请求,根据所述第一任务队列获取新的子任务,并将所述新的子任务调度到所述第二数据节点上。
本实施例中,由第二数据节点每执行完一个子任务之后主动向第一数据节点申请新的子任务来执行,采用动态分配任务的方式实现性能好的第二数据节点能够运行更多的子任务,提高了大规模运筹优化任务的总体运行效率。
在一些实施例中,所述若干子任务从一运筹优化任务中分解得到;其中,所述运筹优化任务含有M个决策变量,每个所述子任务用于求解所述运筹优化任务中的N个决策变量, N小于M且N、M均为大于0的整数。
在一些实施例中,所述方法还包括:在首次子任务分配过程中,根据所述第一任务队列向各个所述第二数据节点分配其一次能够执行的至少一个子任务。示例性的,请参阅图7,在步骤S201中,在首次根据所述第一任务队列向各个所述第二数据节点分配其一次能够执行的至少一个任务之后,重复步骤S203~S204直到所述第一任务队列为空(步骤S202):在步骤S203中,接收所述第二数据节点每执行完一个所述子任务之后发送的子任务获取请求。在步骤S204中,响应于所述子任务获取请求,根据所述第一任务队列获取新的子任务,并将所述新的子任务调度到所述第二数据节点上。
在一些实施例中,所述第二数据节点启动有至少一个进程,每个进程用于执行一个所述子任务;所述第二数据节点一次能够并行执行的子任务数量根据所述第二数据节点中的进程数量确定;所述第二数据节点中的进程数量根据所述第二数据节点的总资源和执行所述子任务所需资源确定。
在一些实施例中,所述进程与所述第一数据节点通信连接;所述子任务获取请求是由所述进程每执行完一个所述子任务之后向所述第一数据节点发送的。所述将所述新的子任务调度到所述第二数据节点上,包括:将所述新的子任务调度到所述进程上。
在一些实施例中,还包括:接收所述第二数据节点上报的在该第二数据节点上执行的子任务的状态信息;在所述状态信息指示在所述第二数据节点上执行的子任务已执行完成的情况下,响应于所述子任务获取请求。
在一些实施例中,所述第二数据节点启动有至少一个进程,每个进程用于执行一个所述子任务;所述进程与所述第一数据节点通信连接;所述状态信息由执行所述子任务的进程向所述第一数据节点上报。
在一些实施例中,所述第一数据节点还包括第二任务队列,所述第二任务队列指示已分配的子任务;所述方法还包括:将已分配的子任务的唯一标识写入所述第二任务队列中,并标记所述子任务的执行状态为未完成;以及在接收到所述第二数据节点上报的状态信息指示子任务已完成的情况下,将所述状态信息指示的子任务的执行状态修改为已完成。
在一些实施例中,所述方法还包括:在确定所述第二数据节点异常的情况下,调用指定接口重启所述第二数据节点的镜像数据节点,并将在所述第二数据节点中运行的至少一个子任务分配给所述镜像数据节点。
在一些实施例中,所述分布式系统应用于K8s集群,所述第一数据节点和所述第二数据节点为K8s集群中的两种不同的Pod;所述第一数据节点为K8s集群中的第一Pod,所述第二数据节点为K8s集群中的第二Pod;所述方法还包括:在确定所述第二Pod异常的情况下,调用指定接口重启所述第二Pod的镜像Pod,并将在所述第二Pod中运行的至少一个子任务分配给所述镜像Pod。
在一些实施例中,请参阅图8,本说明书实施例还提供了一种电子设备30,所述电子设备包括:
处理器31;
用于存储处理器31可执行指令的存储器32;
其中,所述处理器31通过运行所述可执行指令以实现上述任一项所述的方法。
所述处理器31执行所述存储器32中包括的可执行指令,所述处理器31可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路 (Application Specific IntegratedCircuit,ASIC)、现成可编程门阵列 (Field-Programmable Gate Array,FPGA) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器32存储任务调度方法的可执行指令,所述存储器32可以包括至少一种类型的存储介质,存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器 (PROM)、磁性存储器、磁盘、光盘等等。而且,设备可以与通过网络连接执行存储器的存储功能的网络存储装置协作。存储器32可以是设备30的内部存储单元,例如设备30的硬盘或内存。存储器32也可以是设备30的外部存储设备,例如设备30上配备的插接式硬盘,智能存储卡(Smart Media Card, SMC),安全数字(Secure Digital, SD)卡,闪存卡(Flash Card)等。进一步地,存储器32还可以既包括设备30的内部存储单元也包括外部存储设备。存储器32用于存储计算机程序以及设备所需的其他程序和数据。存储器32还可以用于暂时地存储已经输出或者将要输出的数据。
电子设备30可以是桌上型计算机、笔记本、掌上电脑、服务器、云服务器及手机等计算设备。设备可包括,但不仅限于,处理器31、存储器32。本领域技术人员可以理解,图7仅仅是电子设备30的示例,并不构成对电子设备30的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如设备还可以包括输入输出设备、网络接入设备、总线等。
上述设备中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器,上述指令可由装置的处理器执行以完成上述方法。例如,非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
一种非临时性计算机可读存储介质,当存储介质中的指令由终端的处理器执行时,使得终端能够执行上述方法。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器 (CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器 (RAM) 和/或非易失性内存等形式,如只读存储器 (ROM) 或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。

Claims (22)

1.一种任务调度系统,所述任务调度系统包括第一数据节点和多个第二数据节点;所述第一数据节点包括第一任务队列,所述第一任务队列指示未分配且待执行的若干子任务;
所述第二数据节点用于执行所述第一数据节点分配的子任务;以及每执行完一个所述子任务之后向所述第一数据节点发送子任务获取请求;
所述第一数据节点用于若所述第一任务队列非空,响应于所述子任务获取请求,根据所述第一任务队列获取新的子任务,并将所述新的子任务调度到所述第二数据节点上。
2.根据权利要求1所述的系统,所述若干子任务从运筹优化任务中分解得到;
其中,所述运筹优化任务含有M个决策变量,每个所述子任务用于求解所述运筹优化任务中的N个决策变量,N小于M且N、M均为大于0的整数。
3.根据权利要求1所述的系统,所述第一数据节点还用于在首次子任务分配过程中,根据所述第一任务队列向各个所述第二数据节点分配其一次能够执行的至少一个子任务。
4.根据权利要求3所述的系统,所述第二数据节点启动有至少一个进程,每个进程用于执行一个所述子任务;
所述第二数据节点一次能够并行执行的子任务数量根据所述第二数据节点中的进程数量确定;
所述第二数据节点中的进程数量根据所述第二数据节点的总资源和执行所述子任务所需资源确定。
5.根据权利要求4所述的系统,所述进程与所述第一数据节点通信连接;
所述进程用于每执行完一个所述子任务之后向所述第一数据节点发送子任务获取请求;
所述第一数据节点还用于响应于所述子任务获取请求,将所述新的子任务调度到所述进程上。
6.根据权利要求1所述的系统,
所述第二数据节点还用于向所述第一数据节点上报在本节点上执行的子任务的状态信息;
所述第一数据节点还用于在所述状态信息指示在所述第二数据节点上执行的子任务已执行完成的情况下,响应于所述子任务获取请求。
7.根据权利要求6所述的系统,所述第二数据节点启动有至少一个进程,每个进程用于执行一个所述子任务;所述进程与所述第一数据节点通信连接;
所述状态信息由执行所述子任务的进程向所述第一数据节点上报。
8.根据权利要求6所述的系统,所述第一数据节点还包括第二任务队列,所述第二任务队列指示已分配的子任务;
所述第一数据节点还用于将已分配的子任务的唯一标识写入所述第二任务队列中,并标记所述子任务的执行状态为未完成;以及在接收到所述第二数据节点上报的状态信息指示子任务已完成的情况下,将所述状态信息指示的子任务的执行状态修改为已完成。
9.根据权利要求1所述的系统,所述第一数据节点还用于在确定所述第二数据节点异常的情况下,调用指定接口重启所述第二数据节点的镜像数据节点,并将在所述第二数据节点中运行的至少一个子任务分配给所述镜像数据节点。
10.根据权利要求1至9任意一项所述的系统,所述任务调度系统应用于K8s集群,所述第一数据节点和所述第二数据节点为K8s集群中的两种不同的Pod。
11.一种任务调度方法,应用于任务调度系统,所述任务调度系统包括第一数据节点和多个第二数据节点;所述方法由所述第一数据节点执行,所述第一数据节点包括第一任务队列,所述第一任务队列指示未分配且待执行的若干子任务;
所述方法包括:
接收所述第二数据节点每执行完一个所述子任务之后发送的子任务获取请求;
若所述第一任务队列非空,响应于所述子任务获取请求,根据所述第一任务队列获取新的子任务,并将所述新的子任务调度到所述第二数据节点上。
12.根据权利要求11所述的方法,所述若干子任务从一运筹优化任务中分解得到;
其中,所述运筹优化任务含有M个决策变量,每个所述子任务用于求解所述运筹优化任务中的N个决策变量, N小于M且N、M均为大于0的整数。
13.根据权利要求11所述的方法,所述方法还包括:
在首次子任务分配过程中,根据所述第一任务队列向各个所述第二数据节点分配其一次能够执行的至少一个子任务。
14.根据权利要求13所述的方法,所述第二数据节点启动有至少一个进程,每个进程用于执行一个所述子任务;
所述第二数据节点一次能够并行执行的子任务数量根据所述第二数据节点中的进程数量确定;
所述第二数据节点中的进程数量根据所述第二数据节点的总资源和执行所述子任务所需资源确定。
15.根据权利要求14所述的方法,所述进程与所述第一数据节点通信连接;
所述子任务获取请求是由所述进程每执行完一个所述子任务之后向所述第一数据节点发送的;
所述将所述新的子任务调度到所述第二数据节点上,包括:
将所述新的子任务调度到所述进程上。
16.根据权利要求11所述的方法,还包括:
接收所述第二数据节点上报的在该第二数据节点上执行的子任务的状态信息;
在所述状态信息指示在所述第二数据节点上执行的子任务已执行完成的情况下,响应于所述子任务获取请求。
17.根据权利要求16所述的方法,所述第二数据节点启动有至少一个进程,每个进程用于执行一个所述子任务;所述进程与所述第一数据节点通信连接;
所述状态信息由执行所述子任务的进程向所述第一数据节点上报。
18.根据权利要求16所述的方法,所述第一数据节点还包括第二任务队列,所述第二任务队列指示已分配的子任务;
所述方法还包括:
将已分配的子任务的唯一标识写入所述第二任务队列中,并标记所述子任务的执行状态为未完成;以及在接收到所述第二数据节点上报的状态信息指示子任务已完成的情况下,将所述状态信息指示的子任务的执行状态修改为已完成。
19.根据权利要求11所述的方法,所述方法还包括:
在确定所述第二数据节点异常的情况下,调用指定接口重启所述第二数据节点的镜像数据节点,并将在所述第二数据节点中运行的至少一个子任务分配给所述镜像数据节点。
20.根据权利要求11至19任意一项所述的方法,所述任务调度系统应用于K8s集群,所述第一数据节点和所述第二数据节点为K8s集群中的两种不同的Pod。
21.一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如权利要求11至20中任一项所述的方法。
22.一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如权利要求11至20中任一项所述方法的步骤。
CN202210481629.7A 2022-05-05 2022-05-05 任务调度系统、方法、设备及存储介质 Pending CN114579286A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210481629.7A CN114579286A (zh) 2022-05-05 2022-05-05 任务调度系统、方法、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210481629.7A CN114579286A (zh) 2022-05-05 2022-05-05 任务调度系统、方法、设备及存储介质

Publications (1)

Publication Number Publication Date
CN114579286A true CN114579286A (zh) 2022-06-03

Family

ID=81779287

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210481629.7A Pending CN114579286A (zh) 2022-05-05 2022-05-05 任务调度系统、方法、设备及存储介质

Country Status (1)

Country Link
CN (1) CN114579286A (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102096599A (zh) * 2009-12-14 2011-06-15 中国移动通信集团公司 一种多队列任务调度方法及相关系统和设备
CN102096603A (zh) * 2009-12-14 2011-06-15 中国移动通信集团公司 MapReduce系统中的作业分解控制方法及调度节点设备
CN103246550A (zh) * 2012-02-09 2013-08-14 深圳市腾讯计算机系统有限公司 一种基于容量的多任务调度方法及系统
CN111782361A (zh) * 2020-06-29 2020-10-16 济南浪潮高新科技投资发展有限公司 一种量子计算机集群分布式队列调度方法及系统
US11048716B1 (en) * 2020-01-31 2021-06-29 Snowflake Inc. Managed virtual warehouses for tasks
CN113672281A (zh) * 2020-05-13 2021-11-19 北京奇虎科技有限公司 代码差异查询方法、装置、设备及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102096599A (zh) * 2009-12-14 2011-06-15 中国移动通信集团公司 一种多队列任务调度方法及相关系统和设备
CN102096603A (zh) * 2009-12-14 2011-06-15 中国移动通信集团公司 MapReduce系统中的作业分解控制方法及调度节点设备
CN103246550A (zh) * 2012-02-09 2013-08-14 深圳市腾讯计算机系统有限公司 一种基于容量的多任务调度方法及系统
US11048716B1 (en) * 2020-01-31 2021-06-29 Snowflake Inc. Managed virtual warehouses for tasks
CN113672281A (zh) * 2020-05-13 2021-11-19 北京奇虎科技有限公司 代码差异查询方法、装置、设备及存储介质
CN111782361A (zh) * 2020-06-29 2020-10-16 济南浪潮高新科技投资发展有限公司 一种量子计算机集群分布式队列调度方法及系统

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
刘晓建,岳国化编著: "《计算机操作系统》", 31 July 2017 *
徐延明,林立志等: "《Linux编程指南与实例》", 31 August 2000 *
汤小春等: "数据流计算环境下的集群资源管理技术", 《大数据》 *
陈嘉夫: ""一种面向多调度系统支持多任务类型的资源调度平台的设计与实现"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Similar Documents

Publication Publication Date Title
US10911367B2 (en) Computerized methods and systems for managing cloud computer services
US10108458B2 (en) System and method for scheduling jobs in distributed datacenters
CN109684065B (zh) 一种资源调度方法、装置及系统
US10193977B2 (en) System, device and process for dynamic tenant structure adjustment in a distributed resource management system
CN101727357B (zh) 用于分配计算中心中资源的方法和装置
CN105897805B (zh) 对多层架构的数据中心的资源进行跨层调度的方法和装置
US20080030764A1 (en) Server parallel aggregation
CN114741207B (zh) 一种基于多维度组合并行的gpu资源调度方法和系统
US20060212871A1 (en) Resource allocation in computing systems
CN102971724A (zh) 与数据中心环境内的基于单元式虚拟资源的管理有关的方法和装置
US20190205168A1 (en) Grouping of tasks for distribution among processing entities
US11651470B2 (en) Scheduling jobs on graphical processing units
US11886921B2 (en) Serverless runtime container allocation
WO2016074130A1 (zh) 一种系统调用命令的批处理方法及装置
CN111709723B (zh) Rpa业务流程智能处理方法、装置、计算机设备和存储介质
US10635492B2 (en) Leveraging shared work to enhance job performance across analytics platforms
US11880703B2 (en) Optimization of multi-layered images
GB2514585A (en) Task scheduler
Shi et al. Hpks: High performance kubernetes scheduling for dynamic blockchain workloads in cloud computing
CN114579286A (zh) 任务调度系统、方法、设备及存储介质
CN112114958A (zh) 资源隔离方法、分布式平台、计算机设备和存储介质
US20220413941A1 (en) Computing clusters
CN111475277A (zh) 一种资源分配方法、系统、设备及机器可读存储介质
US20230289214A1 (en) Intelligent task messaging queue management
Loganathan et al. Job scheduling with efficient resource monitoring in cloud datacenter

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20220603