CN114595041A - 资源调度系统以及方法 - Google Patents
资源调度系统以及方法 Download PDFInfo
- Publication number
- CN114595041A CN114595041A CN202210096647.3A CN202210096647A CN114595041A CN 114595041 A CN114595041 A CN 114595041A CN 202210096647 A CN202210096647 A CN 202210096647A CN 114595041 A CN114595041 A CN 114595041A
- Authority
- CN
- China
- Prior art keywords
- resource
- subtask
- target
- information
- task
- 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
- 238000000034 method Methods 0.000 title claims abstract description 70
- 238000012545 processing Methods 0.000 claims abstract description 230
- 238000012216 screening Methods 0.000 claims description 13
- 230000004044 response Effects 0.000 claims description 8
- 230000008569 process Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 11
- 238000004590 computer program Methods 0.000 description 10
- 230000003993 interaction Effects 0.000 description 9
- 230000008859 change Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008602 contraction Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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
- G06F9/5038—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 considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本说明书实施例提供资源调度系统以及方法,其中所述资源调度系统包括:任务处理器、调度器以及资源处理节点;其中,任务处理器,被配置为根据待处理任务的任务信息确定目标子任务,并确定目标子任务中的子任务单元,向调度器提交目标子任务的资源获取请求;调度器,被配置为响应于资源获取请求获取初始处理节点的可调度资源信息,根据资源获取请求以及可调度资源信息计算目标子任务的资源调度结果,并将资源调度结果发送至任务处理器以及资源处理节点;任务处理器,被配置为根据资源调度结果向资源处理节点发送子任务单元;资源处理节点,被配置为接收资源调度结果以及子任务单元,基于资源调度结果对应的目标资源执行子任务单元。
Description
技术领域
本说明书实施例涉及计算机技术领域,特别涉及资源调度系统以及方法。
背景技术
随着互联网的发展,通常需要一个庞大的资源系统支撑线上丰富的项目形态,搜索、电商、大数据、数据库等等,在线机器规模如此之大,若将其利用率提升百分之一,都会带来成本的巨大节省。因此提升集群利用率一直都是集团各大调度团队的核心目标之一。但混部的挑战也是巨大的,其中最核心的挑战是如何提供一套资源共享机制(全局、单机),在保障各应用SLA(Service-Level Agreement,服务等级协议)的前提下,达成集群利用率提升的目标。
当前在线集群的特点是低并发场景的调度(容器只要一次启动、不需要频繁调度),主要解决容器的编排、管理等问题,更适合任务长时间运行的场景。但在大数据计算高并发作业的场景,没有有效的解决方案。并且K8S调度系统是面向低并发、精细化资源编排管理的调度场景的。无论是在调度协议还是调度器设计上,K8S调度系统都无法支持高并发的调度能力。因此,亟需提供一种解决上述问题的方案。
发明内容
有鉴于此,本说明书实施例提供了一种资源调度系统。本说明书一个或者多个实施例同时涉及三种种资源调度方法,一种计算设备,一种计算机可读存储介质以及一种计算机程序,以解决现有技术中存在的技术缺陷。
根据本说明书实施例的第一方面,提供了一种资源调度系统,包括:
任务处理器、调度器以及资源处理节点;
其中,所述任务处理器,被配置为根据待处理任务的任务信息确定目标子任务,并确定所述目标子任务中的子任务单元,向所述调度器提交所述目标子任务的资源获取请求;
所述调度器,被配置为响应于所述资源获取请求获取初始处理节点的可调度资源信息,根据所述资源获取请求以及所述可调度资源信息计算所述目标子任务的资源调度结果,并将所述资源调度结果发送至所述任务处理器以及所述资源处理节点;
所述任务处理器,被配置为根据所述资源调度结果向所述资源处理节点发送所述子任务单元;
所述资源处理节点,被配置为接收所述资源调度结果以及所述子任务单元,基于所述资源调度结果对应的目标资源执行所述子任务单元。
可选地,所述任务处理器,进一步被配置为:
根据所述待处理任务的任务信息确定子任务信息以及子任务执行顺序;根据所述子任务信息以及所述子任务执行顺序提取所述待处理任务中的目标子任务;根据所述目标子任务的目标子任务信息创建所述目标子任务中的子任务单元,并确定所述子任务单元的资源获取子信息;基于所述资源获取子信息创建所述目标子任务的资源获取请求,并向所述调度器提交所述资源获取请求。
可选地,所述任务处理器,进一步被配置为:
根据所述资源调度结果在所述子任务单元中筛选目标子任务单元;基于所述资源调度结果向所述资源处理节点发送所述目标子任务单元;
相应地,所述资源处理节点,进一步被配置为:
接收所述目标子任务单元;确定所述资源调度结果对应的目标资源,并通过所述目标资源执行所述目标子任务单元;在所述目标子任务单元执行完成的情况下,向所述任务处理器发送所述目标子任务单元的执行结果。
可选地,所述任务处理器,进一步被配置为:
基于所述执行结果在所述子任务单元中确定剩余子任务单元,并向所述资源处理节点发送所述剩余子任务单元;
相应地,所述资源处理节点,进一步被配置为:
接收所述任务处理器发送的剩余子任务单元;通过所述目标子任务单元对应的目标资源执行所述剩余子任务单元。
可选地,所述任务处理器,还被配置为:
在所述目标子任务中存在未执行的子任务单元的情况下,基于所述执行结果创建子资源撤销信息,并将所述子资源撤销信息发送至所述调度器;
相应地,所述调度器,还被配置为:
基于所述子资源撤销信息,更新所述资源获取请求对应的未调度资源信息。
可选地,所述任务处理器,还被配置为:
在所述目标子任务中不存在未执行的子任务单元的情况下,基于所述执行结果创建子资源归还信息,并将所述子资源归还信息发送至所述调度器;
相应地,所述调度器,还被配置为:
基于所述子资源归还信息,更新所述资源获取请求对应的资源调度信息。
可选地,所述任务处理器,还被配置为:
在所述子任务单元执行完成的情况下,根据所述待处理任务的任务信息确定所述目标子任务之后待执行的第二目标子任务,将所述第二目标子任务作为所述目标子任务,并返回执行所述确定所述目标子任务中的子任务单元步骤。
可选地,所述调度器,进一步被配置为:
确定所述资源获取请求对应的预设调度算法;根据所述可调度资源信息以及所述预设调度算法确定所述资源获取请求对应的资源处理节点以及所述资源处理节点对应的资源调度信息;将所述资源调度信息作为所述资源调度结果。
可选地,所述调度器,进一步被配置为:
根据所述可调度资源信息以及所述资源获取请求携带的资源获取信息,在所述初始处理节点中筛选候选处理节点;根据所述候选处理节点对应的节点信息以及预设评分规则对所述候选处理节点进行评分,获得每个候选处理节点的节点评分;基于所述节点评分在所述候选处理节点中筛选资源处理节点;根据资源获取信息,确定所述资源处理节点对应的资源调度信息。
可选地,所述调度器,进一步被配置为:
在监听到初始处理节点的可调度资源信息存在变更的情况下,在所述初始处理节点中确定待调度的候选资源处理节点以及确定待遍历的目标请求队列;
基于所述候选资源处理节点的目标可调度资源信息以及预设遍历顺序遍历所述目标请求队列中的队列资源获取请求;
在所述目标可调度资源信息满足所述资源获取请求对应的资源获取条件的情况下,将所述候选资源处理节点作为所述资源获取请求的资源处理节点;
根据所述资源获取请求的资源获取信息,确定所述资源处理节点对应的资源调度信息。
可选地,所述调度器,进一步被配置为:
获取所述目标请求队列中的队列资源获取请求;根据所述队列资源获取请求的请求优先级以及请求资源信息,构建请求树;遍历所述请求树中的所述队列资源获取请求。
可选地,所述调度器,还被配置为:
在监听到待处理任务的情况下,在初始处理节点中确定目标处理节点,向所述目标处理节点发送所述待处理任务的任务信息;
相应地,所述目标处理节点,被配置为:
接收所述任务信息,并基于所述任务信息启动所述待处理任务对应的任务处理器。
根据本说明书实施例的第二方面,提供了一种资源调度方法,应用于任务处理器,包括:
根据待处理任务的任务信息确定目标子任务,并确定所述目标子任务中的子任务单元,向调度器提交所述目标子任务的资源获取请求;
接收所述调度器返回的所述资源获取请求的资源调度结果;
根据所述资源调度结果向资源处理节点发送所述子任务单元。
根据本说明书实施例的第三方面,提供了一种资源调度方法,应用于调度器,包括:
接收任务处理器发送的目标子任务的资源获取请求;
响应于所述资源获取请求获取初始处理节点的可调度资源信息;
根据所述资源获取请求以及所述可调度资源信息计算所述目标子任务的资源调度结果;
并将所述资源调度结果发送至任务处理器以及资源处理节点。
根据本说明书实施例的第四方面,提供了一种资源调度方法,应用于资源处理节点,包括:
接收调度器发送的目标子任务的资源调度结果,以及接收任务处理器发送的所述目标子任务的子任务单元;
基于所述资源调度结果对应的目标资源执行所述子任务单元。
根据本说明书实施例的第五方面,提供了一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现上述资源调度方法的步骤。
根据本说明书实施例的第六方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现上述资源调度方法的步骤。
根据本说明书实施例的第七方面,提供了一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述资源调度方法的步骤。
本说明书提供的一种所述资源调度系统,通过任务处理器、调度器以及资源处理节点之间进行交互实现对待处理任务进行资源调度;其中,任务处理器,被配置为根据待处理任务的任务信息确定目标子任务,并确定目标子任务中的子任务单元,向调度器提交目标子任务的资源获取请求;调度器,被配置为响应于资源获取请求获取所述资源处理节点的可调度资源信息,根据资源获取请求以及可调度资源信息计算目标子任务的资源调度结果,并将资源调度结果发送至任务处理器以及资源处理节点;任务处理器,被配置为根据资源调度结果向资源处理节点发送子任务单元;资源处理节点,被配置为接收资源调度结果以及子任务单元,基于资源调度结果对应的目标资源执行子任务单元。避免了为每个子任务单元单独进行资源申请所造成的资源交互,提高了资源调度效率,并提高了待处理任务的处理效率。
附图说明
图1是本说明书一个实施例提供的一种资源调度系统的结构示意图;
图2是本说明书一个实施例提供的一种资源调度系统的架构图;
图3是本说明书一个实施例提供的一种资源调度系统的实施示意图;
图4是本说明书一个实施例提供的一种资源调度系统中请求队列的示意图;
图5是本说明书一个实施例提供的一种资源调度系统中调度过程的示意图;
图6是本说明书一个实施例提供的一种资源调度系统中子资源信息的交互示意图;
图7是本说明书一个实施例提供的一种资源调度系统中遍历队列资源获取请求的示意图;
图8是本说明书一个实施例提供的第一种资源调度方法的流程图;
图9是本说明书一个实施例提供的第二种资源调度方法的流程图;
图10是本说明书一个实施例提供的第三种资源调度方法的流程图;
图11是本说明书一个实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
Kubernetes(K8S):是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。
Pod:可以理解为是传统部署环境里“虚拟机”的角色。通过Pod可以使用户从传统环境(虚拟机环境)向Kubernetes(容器环境)的迁移,更加平滑。比如,凡是调度、网络、存储,以及安全相关的属性,基本上是Pod级别的。这些属性的共同特征是,它们描述的是“机器”这个整体,而不是里面运行的“程序”。
在本说明书中,提供了一种资源调度系统,本说明书同时涉及三种资源调度方法,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
参见图1,图1示出了根据本说明书一个实施例提供的一种资源调度系统的结构示意图。所述资源调度系统,包括:
任务处理器102、调度器104以及资源处理节点106;
其中,所述任务处理器102,被配置为根据待处理任务的任务信息创建目标子任务,并确定所述目标子任务中的子任务单元,向所述调度器104提交所述目标子任务的资源获取请求;
所述调度器104,被配置为响应于所述资源获取请求获取初始处理节点的可调度资源信息,根据所述资源获取请求以及所述可调度资源信息计算所述目标子任务的资源调度结果,并将所述资源调度结果发送至所述任务处理器102以及所述资源处理节点106;
所述任务处理器102,被配置为根据所述资源调度结果向所述资源处理节点106发送所述子任务单元;
所述资源处理节点106,被配置为接收所述资源调度结果以及所述子任务单元,根据所述资源调度结果执行所述子任务单元。
具体的,任务处理器102,是指分布式系统中控制待处理任务的程序,负责代表待处理任务向调度器104申请任务资源、以及向资源处理节点106发送任务程序。调度器104(Resource Manager),是指在分布式系统中协调、分配系统可用资源的服务器或调度程序。待处理任务,是指待执行的指令、任务或程序。实际应用中,该待处理任务可以是SQL程序、查询指令、下单任务等,在此不做限制。资源处理节点106,是指分布式系统中代表机器负责监管待处理任务的任务程序执行的服务器或虚拟服务环境。初始处理节点,可以理解为可供调度器104进行资源调度的机器节点。
实际应用中,由于在离线大数据场景,待处理任务可能会申请成千上万份资源,用于每个任务单元的执行。而待处理任务中的每个任务单元的执行时间会非常的短(80%<10秒)。此外,quota(定额)组的资源限制导致大量的资源获取请求会排队。并且同一个计算stage(阶段)内所有的任务单元的任务资源描述相同(即资源需求相同)。为了避免在任务单元的基础上进行资源申请以及资源调度,导致频繁进行进程启停。本说明书实施例,将待处理任务划分为子任务,在子任务的基础上划分为子任务单元。并在子任务的基础上进行资源获取,即提交目标子任务对应的资源获取请求。再由调度器104基于该资源获取请求在初始处理节点中为目标子任务确定对应的资源调度结果,其中该资源调度结果可以为该资源获取请求中所请求的全部资源的资源调度结果,也可以为该资源获取请求中所请求的部分资源的资源调度结果,在此不做限制。在确定资源调度节点的基础上,由资源处理节点106基于该资源调度结果执行目标子任务中的子任务单元。
在分布式系统中,通常存在三个角色:调度器104、任务处理器102及下属子任务、资源处理节点106。其中,资源处理节点106会向调度器104汇报自己的资源数量,供由调度器104统一进行资源管理与调度;当用户需要提交一个作业(待处理任务)时,作业管理器(任务处理器102)会向调度器104申请一定数量的机器资源(如CPU、内存)供作业节点(子任务单元)使用;调度器104在收到待处理任务资源申请后,会根据分布式系统中剩余的可用资源计算出可以分配给作业管理器的可用资源列表(例:在A机器上可用1核CPU、1GB内存,在B机器上可用2核CPU、2GB内存);然后,调度器104会将资源列表发送给作业管理器和相应机器节点。作业管理器在收到可用资源列表后,会将作业节点(作业程序)分配到相应的机器节点(资源处理节点106)执行作业程序(子任务单元)。当作业节点执行完毕时,作业管理器会告知资源管理器归还该作业节点的资源。资源管理器收到归还申请后,通知机器节点释放掉该作业节点的资源,释放的资源可再次分配给其他作业。
上述示意过程可以通过如图2所示的5个步骤实现:1.用户提交作作业,启动作业管理器;2.作业管理器向资源管理器(调度器104)申请资源;3.资源管理器向作业管理器和机器节点分配资源;4.作业管理器向相应机器节点分发作业程序;5.机器节点在获得资源后,执行作业程序。
而具体实施时,如图3所示,资源调度系统中可能需要通过接口服务器(ApiServer,用于各个节点、服务之间的交互,并用以和外界用户交互)与任务处理器(AppMaster)、调度器(Scheduler)、节点(Node,机器节点也可以简称为节点)以及用户之间的交互,以实现对待处理任务的资源调度以及执行。具体如下步骤所示:
其中,1.用户(User)向接口服务器创建待处理任务;2.调度器从接口服务器监听到待处理任务,为其产生调度结果;3.调度器将调度结果发送给接口服务器;4.节点通过接口服务器监听到待处理任务的调度事件,在单机上拉起任务处理器;5.任务处理器向接口服务器发送若干作业对象(Worker,即子任务单元),期待调度器进行调度;6.调度器从接口服务器监听到作业对象,为其产生调度结果;7.调度器将调度结果发送给接口服务器;8.任务处理器通过接口服务器监听到调度结果,并对作业对象的生命周期进行管理;9.节点通过接口服务器监听到待处理任务的调度事件,在单机上执行作业对象。
由于每个待处理任务都需要任务处理器102对其进行管理,而任务处理器102也需要在处理节点中进行启动。因此,用户提交一个待处理任务之后,需要调度器104为该待处理任务在初始处理节点中分配目标处理节点,用以启动待处理任务对应的任务处理器102。具体实施时,本说明书实施例,所述调度器104,还被配置为:
在监听到待处理任务的情况下,在初始处理节点中确定目标处理节点,向所述目标处理节点发送所述待处理任务的任务信息;
相应地,所述目标处理节点,还被配置为:
接收所述任务信息,并基于所述任务信息启动所述待处理任务对应的任务处理器102。
实际应用中,为了启动待处理任务专属的任务处理器102,需要调度器104为该待处理任务分配目标处理节点,用以在该目标处理节点中启动该任务处理器102。具体实施时,由于任务处理器102需要管理该待处理任务,因此,该任务处理器102需要基于待处理任务的任务信息进行启动。
该待处理任务的任务信息,可以包括待处理任务的任务名称、任务类型、任务详情、任务需求资源等信息,在此不做限制。
综上,调度器104监听到待处理任务的情况下,在调度器104调度的目标处理节点中启动待处理任务对应的任务处理器102,实现了对任务处理器102的启动,以便基于该任务处理器102对待处理任务进行管理。
具体实施时,所述任务处理器102,进一步被配置为:
根据所述待处理任务的任务信息确定子任务信息以及子任务执行顺序;根据所述子任务信息以及所述子任务执行顺序提取所述待处理任务中的目标子任务;根据所述目标子任务的目标子任务信息创建所述目标子任务中的子任务单元,并确定所述子任务单元的资源获取子信息;基于所述资源获取子信息创建所述目标子任务的资源获取请求,并向所述调度器104提交所述资源获取请求。
实际应用中,由于待处理任务的处理量可能比较巨大,不利于对该待处理任务进行资源调度。因此,可以将待处理任务划分为多个阶段的子任务,并分别对每个子任务进行资源调度并执行。
具体的,子任务信息,包括待处理任务中分离出的子任务的任务相关信息,该子任务信息,可以包括子任务详情,子任务数据量、子任务资源信息等,在此不做限制。子任务执行顺序,可以理解为子任务的执行顺序。此外,由于一个子任务可能需要基于另一个子任务的执行结果进行处理。因此,这些子任务之间可能存在执行顺序。并需要按照该执行顺序执行这些子任务,才能保障对待处理任务进行处理的正确性。也因此,需要根据子任务信息以及子任务执行顺序,确定在子任务中待执行的目标子任务。
由于单个子任务的处理量可能还是很大。这种情况下,可以将单个子任务再划分为多个子任务单元,这些子任务单元可以理解为同构的任务单元。并且这些子任务单元可以并行执行,也可以顺次执行,在此不做限制。
具体实施时,可以根据子任务对应的子任务单元数据量或预设子任务单元数量等,创建目标子任务中的至少一个子任务单元。比如,子任务的数据量为10T,预设子任务单元数据量为1T,则可以基于该子任务创建10个子任务单元。
进一步的,再根据目标子任务的子任务资源信息以及子任务单元的数量或数据量等信息,确定子任务单元所需要的子任务资源的信息,即资源获取子信息。进一步的,将这些资源获取子信息进行组合,即可创建目标子任务的资源获取请求。该资源获取请求用以向调度器104请求执行目标子任务中子任务单元所需要的资源。其中,子任务资源信息,是指执行子任务所需的资源的相关信息。实际应用中,该子任务资源信息也可以是待处理任务的任务资源信息。比如待处理任务中的任务资源信息为1000核CPU,以及500GB内存,则子任务资源信息也为1000核CPU,以及500GB内存。
以待处理任务为SQL语句1为例,该SQL语句1的任务信息包括:SQL语句1的任务类型“离线任务”、任务资源信息“1000核CPU,3000GB内存”、以及SQL语句详情“select*fromtable1 join select*from table2”。根据该任务信息即可确定三个子任务的子任务信息。其中,子任务1的子任务信息包括:select*from table1,以及数据量1000GB;子任务2的子任务信息包括:select*from table2,以及数据量500GB;子任务3的子任务信息包括:table1 join table2以及数据量1500GB。由于这三个子任务中SQL关键词的执行顺序为子任务1中的select、子任务2中的select以及子任务3中的join,因此可以确定子任务执行顺序为子任务1、子任务2以及子任务3。基于该子任务执行顺序,确定目标子任务为子任务1。并根据子任务1的数据量1000GB以及预设子任务单元的最大处理数据量为1GB,为该子任务1创建1000个子任务单元。由于SQL语句1的任务资源信息为1000核CPU,3000GB内存,则确定每个子任务单元的资源获取子信息为:1核CPU,3GB内存。并基于这1000个子任务单元的资源获取子信息创建子任务1对应的资源获取请求,该资源获取请求中携带这1000个子任务单元的资源获取子信息。
综上,将待处理任务划分为子任务并将子任务划分为子任务单元的基础上,为子任务进行资源申请,并基于申请的资源执行子任务中的子任务单元。实现了将子任务单元所需的资源进行联合申请,避免了为每个子任务单元单独进行资源申请,加快了资源申请效率,并提高了资源调度效率。
在任务处理器102创建目标子任务的资源获取请求的基础上,需要调度器104为该资源获取请求调度相应的资源,以保障目标子任务的顺利执行。本说明书实施例,所述调度器104,进一步被配置为:
确定所述资源获取请求对应的预设调度算法;根据所述可调度资源信息以及预设调度算法确定所述资源获取请求对应的资源处理节点106以及所述资源处理节点106对应的资源调度信息;将所述资源调度信息作为所述资源调度结果。
其中,预设调度算法,是指预先设置的用以对待处理任务进行资源调度的算法。实际应用中,可以根据资源获取请求的请求类型(比如离线请求或在线请求),确定预设调度算法。该预设调度算法可以为:基于资源获取请求确定对其进行处理的处理节点的bestfit算法;也可以为:基于可用的处理节点确定其可以满足的资源获取请求的first-fit算法,此外,还可以是其他类型的算法,在此不做限制。
具体实施时,由于预设调度算法的种类是多种多样的,本说明书提供的第一种可选实施方式中,所述调度器104,进一步被配置为:
根据所述可调度资源信息以及所述资源获取请求携带的资源获取信息,在初始处理节点中筛选候选处理节点;根据所述候选处理节点对应的节点信息以及预设评分规则对所述候选处理节点进行评分,获得每个候选处理节点的节点评分;基于所述节点评分在所述候选处理节点中筛选资源处理节点106;根据资源获取信息,确定所述资源处理节点106对应的资源调度信息。
候选处理节点,可以理解为初始处理节点中的可用资源可以满足资源获取信息中所申请的部分或全部资源的处理节点。节点信息,可以是候选节点的可用资源信息、任务量信息等。相应地,预设评分规则,是指预先设置的对候选处理节点进行打分的规则。该预设评分规则可以是根据可以资源的多少,任务量的多少等信息进行打分,在此不做限定。
根据节点信息以及预设评分规则,对候选处理节点进行评分,即可获得候选处理节点的节点评分,比如90分,80分,60分等。再基于该节点评分在候选处理节点中按照预设筛选条件(比如选取大于评分阈值或最大节点评分)筛选资源处理节点106。在该资源处理节点106的可调用资源中确定可以满足资源获取信息中所申请的部分或全部资源的信息,即资源调度信息。实际应用中,该资源处理节点106的数量可以是一个,也可以是多个,在此不做限制。
综上,通过在初始处理节点中选取可用的候选处理节点作为资源获取请求对应的资源处理节点106,保障了对资源获取请求的资源调度质量。
此外,本申请提供的第二种可选实施方式中,所述调度器104,进一步被配置为:
在监听到初始处理节点的可调度资源信息存在变更的情况下,在所述初始处理节点中确定待调度的候选资源处理节点以及确定待遍历的目标请求队列;
基于所述候选资源处理节点的目标可调度资源信息以及预设遍历顺序遍历所述目标请求队列中的队列资源获取请求;
在所述目标可调度资源信息满足所述资源获取请求对应的资源获取条件的情况下,将所述候选资源处理节点作为所述资源获取请求的资源处理节点106;
根据所述资源获取请求的资源获取信息,确定所述资源处理节点106对应的资源调度信息。
其中,初始处理节点的可调度资源信息存在变更,可以理解为任意一个初始处理节点存在资源释放,即初始处理节点的可用资源增大的情况下,则将存在该变更的初始处理节点作为待调度的候选资源处理节点,用以处理请求资源的任务。
实际应用中,可以根据资源获取请求的请求类型(比如离线或在线)和/或请求需求级别(高或低)等创建多个请求队列。在调度器104接收到资源获取请求时,将资源获取请求根据其请求类型和/或请求需求级别插入相应的请求队列。其中,请求需求级别,可以理解为资源获取请求对调度质量的需求级别,比如对调度质量低的资源获取请求可以通过多线程资源进行处理;对调度质量高的资源获取请求则需要通过单线程资源进行处理,以避免多线程之间的竞争。基于此,可以将调度器104中的请求队列,分为在线队列、离线队列、多线程队列、单线程队列等,在此不做限制。
具体的,请求队列的部署可以如图4所示,在调度器104中存在两个队列池,其中队列池1用于处理离线的资源获取请求,队列池2用于处理在线的资源获取请求。此外,每个队列池包括两个请求队列。其中请求队列A用于处理请求需求级别高的资源获取请求,对于该请求队列A中的资源获取请求,采用单线程执行;请求队列B用于处理请求需级别低的资源获取请求,对于该请求队列A中的资源获取请求,采用多线程执行。
进一步的,执行上述调度过程可以如图5所示,在调度器104确定存在节点(初始处理节点)的可调度资源信息存在变更的情况下,在初始处理节点中确定存在可调度资源信息变更的候选资源处理节点比如节点1以及节点2。由于节点1为定额组1(Quota1)中的节点,节点2为定额组2(Quota2)中的节点。其中,定额组1是针对项目1所划分的资源配额。定额组2是针对项目2所划分的资源定额。节点1在定额组1对应的队列池2中确定待遍历的请求队列为请求队列1,则在请求队列1中为其筛选其可以满足的队列资源获取请求(此过程可以理解为在筛选队列资源获取请求时执行过滤逻辑)。
预设遍历顺序,可以是目标请求队列中队列资源获取请求排列的先后顺序。也可以是将请求队列中队列资源获取请求构建请求树,并将该请求树的遍历顺序作为预设遍历顺序。
以该资源调度系统为K8S为例,资源调度系统中每一个子任务单元或任务处理器102都是一个Pod,无论是任务处理器102申请资源、调度器104归还资源、资源处理节点106执行子任务单元都是以Pod对象作为载体。由于在线服务是一个个独立的进程,所以每个进程用独立的Pod来表示。而为了使K8S系统中支持在线部署的资源调度框架中可以支持离线服务,并使K8S调统即支持在线精细化的资源编排管理,也支持离线大数据场景下的高并发调度能力。需要为离线服务提出离线协议。以该协议支持上述对待处理任务的多级子任务划分,并支持按照资源获取请求的类型划分请求队列。
具体实施时,所述调度器104,进一步被配置为:
获取所述目标请求队列中的队列资源获取请求;根据所述队列资源获取请求的请求优先级以及资源获取信息,构建请求树;遍历所述请求树中的所述队列资源获取请求。
实际应用中,请求先级越高,表明这个队列资源获取请求越重要,越需要优先被满足。资源获取信息,可以理解为队列资源获取请求所请求的资源的信息,比如队列资源获取请求1中请求调度器104分配3核CPU,以及2GB内存。该资源获取信息可以简写为[3,2]。其中,第一个维度2,表示请求分配3核CPU;第二个维度2,表示请求分配2GB内存。
具体实施时,该请求树可以为红黑树,也可以为其他二叉树,在此不做限制。在构建请求树之后,则按照该请求树所定义的遍历顺序遍历该请求树中的队列资源获取请求。此外,也可以直接将请求树作为请求队列。在接收到任意一个队列资源获取请求时,直接将该队列资源获取请求插入请求树中的相应位置。
以红黑树为例,由于资源获取请求所请求资源通常是多维的,因此,每棵红黑树中的节点的资源也是多维的,那么红黑树中每个节点保存的是自己左、右子树中在每一个维度的最小值。具体如图6所示:
可以看到,候选资源节点的目标可用资源为2核CPU以及2GB内存,简称为[2,2]。5这个根节点节点左子树的最小值为[2,2],但是实际上并不存在满足条件[2,2]的节点。所以在遍历过程中,必须考虑到“前进失败以及回溯”的情况,当遍历到节点2时,发现节点2的左子树的最小值[2,3]不能被可用资源[2,2]满足,即左子树不符合资源约束,因此,左子树不能再前进了。需要继续确认节点2本身是否符合资源约束;节点2的值为[3,3]也不符合,那么继续确认节点2的右子树是否有符合条件的节点;由于右子树的最小值为[3,2]也不符合,则回溯到节点5,以此类推,最终确定节点7符合条件。
可以看到,在考虑“回溯”的条件下,整棵树的无用遍历的最坏情况为O(N/2),(因为走到叶子结点的上一层就知道叶子结点是否符合条件,所以叶子结点不会被无用遍历到)。
采用构建红黑树对应的预设遍历顺序虽然不可避免的出现了无用遍历,但是在“这棵树中的无用遍历”与“挑选出队列资源获取请求后在外围算定额或节点剩余资源时造成的无用遍历”两者代价完全不同,这个可以从实验结果中得到验证(优化前后效果相差10~1000倍),实际上,按照构建红黑树对应的预设遍历顺序的总overhead(开销)=无用遍历次数*单次无用遍历造成的开销,在树里面的“单次无用遍历造成的开销”是代价最小的,同时从外层看,也保证了“这棵树挑选出来的队列资源获取请求一定是可被满足的”这一原则。
具体实施时,按照预设遍历顺序遍历目标请求队列中的队列资源获取请求的目的是,在队列资源获取请求中筛选该候选资源处理节点可以最先满足的队列资源获取请求。实际应用中在目标请求队列中寻找请求,在寻找过程中对请求执行过滤逻辑,同一台机器(一个候选资源处理节点)同时只遍历一个Queue(队列),且同一个Queue同时只能被一台机器(一个候选资源处理节点)遍历,此外,Queue的排序规则支持FIFO(First In First Out,先进先出)和/或公平原则。
并在该队列资源获取请求为上述资源获取请求的情况下,根据资源获取请求的资源获取信息,确定资源处理节点106对应的资源调度信息。
综上,通过可用的候选资源处理节点选取资源获取请求,提高了资源的处理节点的利用效率。此外,通过红黑树对应的预设遍历顺序进行遍历,减少了无用遍历的次数,提高了调度效率。
实际应用中,由于资源调度结果可能只能满足一部分子任务单元的执行所需,因此,本说明实施例,所述任务处理器102,进一步被配置为:
根据所述资源调度结果在所述子任务单元中筛选目标子任务单元;基于所述资源调度结果向所述资源处理节点106发送所述目标子任务单元;
相应地,所述资源处理节点106,进一步被配置为:
接收所述目标子任务单元;确定所述资源调度结果对应的目标资源,并通过所述目标资源执行所述目标子任务单元;在所述目标子任务单元执行完成的情况下,向所述任务处理器102发送所述目标子任务单元的执行结果。
具体的,根据所述资源调度结果在所述子任务单元中筛选目标子任务单元,是指在子任务单元中筛选资源调度结果对应的目标资源可以执行的子任务单元。该目标子任务单元可以是部分或全部的子任务单元,在此不做限制。
此外,由于资源调度结果可能一次性无法完成全部的子任务单元的执行,只能完成目标子任务单元的执行。因此,任务处理器102先将目标子任务单元发送至资源处理节点106。并接收资源处理节点106通过资源调度结果对应的目标资源对目标子任务单元的执行结果。
此外,对于子任务单元中除目标子任务单元之外的剩余子任务单元,本说明实施例,所述任务处理器102,进一步被配置为:
基于所述执行结果在所述子任务单元中确定剩余子任务单元,并向所述资源处理节点106发送所述剩余子任务单元;
相应地,所述资源处理节点106,进一步被配置为:
接收所述任务处理器102发送的剩余子任务单元;通过所述目标子任务单元对应的目标资源执行所述剩余子任务单元。
完成目标子任务单元的执行后,为了完成子任务单元中剩余子任务单元的执行。需要任务处理器102先将剩余子任务单元发送至资源处理节点106,并接收资源处理节点106通过复用目标资源执行剩余子任务单元的执行结果。
具体实施时,可以每完成一个目标子任务单元,则根据执行结果在子任务单元中确定一个剩余子任务单元,并通过该目标子任务单元对应的单元资源,对该剩余子任务单元进行执行即可。
综上,当一个资源获取请求拿到部分资源不足以满足全部等待执行的子任务单元的数量时,资源可以跑完当前子任务单元后不归还资源,而是继续给下一个子任务单元继续使用,避免了频繁归还资源以及调度资源造成的资源交互以及单机进程启停。提高了目标子任务的处理效率。
此外,由于对于已经通过复用资源的方式所执行的剩余子任务单元,则无需调度器104再为这部分剩余子任务单元不断执行资源调度。因此,本说明书实施例,所述任务处理器102,还被配置为:
在所述目标子任务中存在未执行的子任务单元的情况下,基于所述执行结果创建子资源撤销信息,并将所述子资源撤销信息发送至所述调度器104;
相应地,所述调度器104,还被配置为:
基于所述子资源撤销信息,更新所述资源获取请求对应的未调度资源信息。
其中,子资源撤销信息,是指请求调度器104撤销子资源调度的信息。由于可以通过复用资源执行未执行的子任务单元,因此,在执行完一个目标子任务单元的情况下,可以复用该目标子任务单元对应的资源继续执行其他子任务单元。这种情况下,任务处理器102向调度器104发送子资源撤销信息,是通知调度器104归还一份子资源请求。
具体的,该子资源撤销信息可以是子任务标签的形式。比如label=req。在调度器104接收到该子资源撤销信息后,则根据该子资源撤销信息,更新对资源获取请求对应的未调度资源信息。用以减少对资源获取请求的未调度资源。
此外,所述任务处理器102,还被配置为:
在所述目标子任务中不存在未执行的子任务单元的情况下,基于所述执行结果创建子资源归还信息,并将所述子资源归还信息发送至所述调度器104;
相应地,所述调度器104,还被配置为:
基于所述子资源归还信息,更新所述资源获取请求对应的资源调度信息。
其中,子资源归还信息,是指请求调度器104释放资源的信息。由于目标子任务中不存在未执行的子任务单元,因此,无需再使用执行完目标子任务单元后空余资源。这种情况下,任务处理器102向调度器104发送子资源归还信息,通知调度器104资源获取请求已经无需用到该子资源了,调度器104可以对这部分资源进行释放处理。具体的,该子资源归还信息也可以是子任务标签的形式。比如label=res。在调度器104接收到该子资源归还信息后,则根据该子资源归还信息,更新对资源获取请求对应的资源调度信息。用以对资源获取请求已归还的资源进行释放。
具体实施时,如果短时间内子任务单元大量的更新(起停)引起目标子任务的更新也是相当不经济的,因为资源变化只占整个目标子任务内容的极小部分,但是确需要将整个目标子任务更新到存储中。因此通过创建子资源撤销信息以及子资源归还信息,用他们表示资源的流转,资源的变化不会引起目标子任务整体的更新,子资源撤销信息以及子资源归还信息相比目标子任务在体积上是极小的,因此能够显著降低事件更新产生的压力。
具体的,如图7所示,T0:任务处理器创建taskgroup(任务组,可以理解为上述的目标子任务),其中包括两个未执行作业,其中,作业可以理解为上述子任务单元,分别为worker0以及worker1。任务处理器通过接口服务器申请两份资源;T1:调度器分配给taskgroup一份资源;T2:通过所分配的一份资源worker0开始执行,则该worker0为运行中作业;T3:woker0执行结束,任务处理器复用这一份资源继续运行worker1。其中,该worker0为已完成作业。为了让调度器少调度一份资源,任务处理器创建一个撤销子资源信息,其中label=req,表示通知调度器归还一份请求(即撤销一份资源);T4:worker1执行结束,任务处理器发现无待调度的worker,故创建一个子资源归还信息,label=req,表示通知调度器归还一份资源,其中worker0和worker1都为已完成作业。综上,调度器104待调度的worker数量为:目标子任务中子任务单元的数量–Sum(撤销子资源的子任务单元)–Sum(归还子资源的子任务单元)。
此外,由于待处理任务中处理目标子任务之外,还存在其他子任务,因此,本申请实施例,所述任务处理器102,还被配置为:
在所述子任务单元执行完成的情况下,根据所述待处理任务的任务信息确定所述目标子任务之后待执行的第二目标子任务,将所述第二目标子任务作为所述目标子任务,并返回执行所述确定所述目标子任务中的子任务单元步骤。
具体实施时,在执行完目标子任务之后,需要在待处理任务中确定待执行的其他子任务。以重复对目标子任务的处理方式,对其他子任务进行处理,从而完成对待处理任务的执行。
其中,第二目标子任务,可以理解为待处理任务中继目标子任务之后待执行的子任务。具体的,可以根据上述确定的子任务执行顺序,确定第二目标子任务。
本说明书提供的一种所述资源调度系统通过任务处理器102、调度器104以及资源处理节点106之间进行交互实现对待处理任务进行资源调度;其中,任务处理器102,被配置为根据待处理任务的任务信息确定目标子任务,并确定目标子任务中的子任务单元,向调度器104提交目标子任务的资源获取请求;调度器104,被配置为响应于资源获取请求获取所述资源处理节点106的可调度资源信息,根据资源获取请求以及可调度资源信息计算目标子任务的资源调度结果,并将资源调度结果发送至任务处理器102以及资源处理节点106;任务处理器102,被配置为根据资源调度结果向资源处理节点106发送子任务单元;资源处理节点106,被配置为接收资源调度结果以及子任务单元,基于资源调度结果对应的目标资源执行子任务单元。避免了为每个子任务单元单独进行资源申请所造成的资源交互,提高了资源调度效率,并提高了待处理任务的处理效率。
与上述系统实施例相对应,本说明书还提供了系统调度方法实施例,阅读本实施例时,可与上述系统实施例相对应。图8示出了本说明书一个实施例提供的第一种系统调度方法的流程图,该方法应用于任务处理器,具体包括以下步骤:
步骤802:根据待处理任务的任务信息确定目标子任务,并确定所述目标子任务中的子任务单元,向调度器提交所述目标子任务的资源获取请求;
步骤804:接收所述调度器返回的所述资源获取请求的资源调度结果;
步骤806:根据所述资源调度结果向资源处理节点发送所述子任务单元。
可选地,所述根据待处理任务的任务信息确定目标子任务,并确定所述目标子任务中的子任务单元,向调度器提交所述目标子任务的资源获取请求,包括:
根据所述待处理任务的任务信息确定子任务信息以及子任务执行顺序;
根据所述子任务信息以及所述子任务执行顺序提取所述待处理任务中的目标子任务;
根据所述目标子任务的目标子任务信息创建所述目标子任务中的子任务单元;
确定所述子任务单元的资源获取子信息;
基于所述资源获取子信息创建所述目标子任务的资源获取请求,并向所述调度器提交所述资源获取请求。
可选地,所述接收所述调度器返回的所述资源获取请求的资源调度结果之后,还包括:
根据所述资源调度结果在所述子任务单元中筛选目标子任务单元;
基于所述资源调度结果向所述资源处理节点发送所述目标子任务单元;
接收所述资源处理节点发送的所述目标子任务单元的执行结果。
可选地,所述接收所述资源处理节点发送的所述目标子任务单元的执行结果之后,还包括:
基于所述执行结果在所述子任务单元中确定剩余子任务单元;
向所述资源处理节点发送所述剩余子任务单元。
可选地,所述接收所述资源处理节点发送的所述目标子任务单元的执行结果之后,还包括:
在所述目标子任务中存在未执行的子任务单元的情况下,基于所述执行结果创建子资源撤销信息,并将所述子资源撤销信息发送至所述调度器。
可选地,所述接收所述资源处理节点发送的所述目标子任务单元的执行结果之后,还包括:
在所述目标子任务中不存在未执行的子任务单元的情况下,基于所述执行结果创建子资源归还信息,并将所述子资源归还信息发送至所述调度器。
可选地,所述根据所述资源调度结果向资源处理节点发送所述子任务单元之后,还包括;
在所述子任务单元执行完成的情况下,根据所述待处理任务的任务信息确定所述目标子任务之后待执行的第二目标子任务,将所述第二目标子任务作为所述目标子任务,并返回执行所述确定所述目标子任务中的子任务单元步骤。
可选地,所述根据待处理任务的任务信息确定目标子任务之前,还包括:
在监听到待处理任务的情况下,在初始处理节点中确定目标处理节点,向所述目标处理节点发送所述待处理任务的任务信息。
其中,目标处理节点,可以理解为接收所述任务信息,并基于所述任务信息启动所述待处理任务对应的任务处理器的处理节点。
本说明书提供的一种所述资源调度方法,应用于任务处理器,任务处理器根据待处理任务的任务信息确定目标子任务,并确定所述目标子任务中的子任务单元,向调度器提交所述目标子任务的资源获取请求;实现了在将待处理任务划分子任务的基础上,确定目标子任务中的子任务单元,并基于目标子任务向调度器进行资源申请。接收所述调度器返回的所述资源获取请求的资源调度结果,根据所述资源调度结果向资源处理节点发送所述子任务单元。避免了为每个子任务单元单独进行资源申请所造成的资源交互,提高了资源调度效率,并提高了待处理任务的处理效率。
本说明书提供的一种所述资源调度方法,根据待处理任务的任务信息确定目标子任务,并确定目标子任务中的子任务单元,向调度器提交目标子任务的资源获取请求;响应于资源获取请求获取所述资源处理节点的可调度资源信息,根据资源获取请求以及可调度资源信息计算目标子任务的资源调度结果,并将资源调度结果发送至任务处理器以及资源处理节点;根据资源调度结果向资源处理节点发送子任务单元;接收资源调度结果以及子任务单元,基于资源调度结果对应的目标资源执行子任务单元。避免了为每个子任务单元单独进行资源申请所造成的资源交互,提高了资源调度效率,并提高了待处理任务的处理效率。
与上述系统实施例相对应,本说明书还提供了系统调度方法实施例,阅读本实施例时,可与上述系统实施例相对应。图9示出了本说明书一个实施例提供的第二种系统调度方法的流程图,该方法应用于调度器,具体包括以下步骤:
步骤902:接收任务处理器发送的目标子任务的资源获取请求;
步骤904:响应于所述资源获取请求获取初始处理节点的可调度资源信息;
步骤906:根据所述资源获取请求以及所述可调度资源信息计算所述目标子任务的资源调度结果;
步骤908:将所述资源调度结果发送至所述任务处理器以及资源处理节点。
其中,所述目标子任务的资源获取请求中携带目标子任务的子任务单元的子资源获取信息。调度器根据该资源获取请求,可以批量地为子任务单元进行资源调度。基该资源调度结果中可以包含为部分或全部子任务单元进行资源调度的调度结果。
可选地,将所述资源调度结果发送至任务处理器以及资源处理节点之后,还包括:
接收所述任务处理器基于所述目标子任务中目标子任务单元的执行结果发送的子资源撤销信息;
基于所述子资源撤销信息,更新所述资源获取请求对应的未调度资源信息。
可选地,将所述资源调度结果发送至任务处理器以及资源处理节点之后,还包括:
接收所述任务处理器基于所述目标子任务中目标子任务单元的执行结果发送的子资源归还信息;
基于所述子资源归还信息,更新所述资源获取请求对应的资源调度信息。
可选地,所述根据所述资源获取请求以及所述可调度资源信息计算所述目标子任务的资源调度结果,包括:
确定所述资源获取请求对应的预设调度算法;
根据所述可调度资源信息以及所述预设调度算法确定所述资源获取请求对应的资源处理节点以及所述资源处理节点对应的资源调度信息;
将所述资源调度信息作为所述资源调度结果。
可选地,所述根据所述可调度资源信息以及所述预设调度算法确定所述资源获取请求对应的资源处理节点以及所述资源处理节点对应的资源调度信息,包括:
根据所述可调度资源信息以及所述资源获取请求携带的资源获取信息,在初始处理节点中筛选候选处理节点;
根据所述候选处理节点对应的节点信息以及预设评分规则对所述候选处理节点进行评分,获得每个候选处理节点的节点评分;
基于所述节点评分在所述候选处理节点中筛选资源处理节点;
根据资源获取信息,确定所述资源处理节点对应的资源调度信息。
可选地,所述根据所述可调度资源信息以及所述预设调度算法确定所述资源获取请求对应的资源处理节点以及所述资源处理节点对应的资源调度信息,包括:
在监听到初始处理节点的可调度资源信息存在变更的情况下,在所述初始处理节点中确定待调度的候选资源处理节点以及确定待遍历的目标请求队列;
基于所述候选资源处理节点的目标可调度资源信息以及预设遍历顺序遍历所述目标请求队列中的队列资源获取请求;
在所述目标可调度资源信息满足所述资源获取请求对应的资源获取条件的情况下,将所述候选资源处理节点作为所述资源获取请求的资源处理节点;
根据所述资源获取请求的资源获取信息,确定所述资源处理节点对应的资源调度信息。
可选地,遍历所述目标请求队列中的队列资源获取请求,通过如下方式实现:
获取所述目标请求队列中的队列资源获取请求;
根据所述队列资源获取请求的请求优先级以及资源获取信息,构建请求树;
遍历所述请求树中的所述队列资源获取请求。
本说明书提供的一种所述资源调度方法,应用于调度器,调度器接收任务处理器发送的目标子任务的资源获取请求;响应于所述资源获取请求获取初始处理节点的可调度资源信息;根据所述资源获取请求以及所述可调度资源信息计算所述目标子任务的资源调度结果;将所述资源调度结果发送至所述任务处理器以及资源处理节点;实现了在目标子任务的基础上进行资源调度。避免了为每个子任务单元单独进行资源调度所造成的资源交互,提高了资源调度效率,并提高了待处理任务的处理效率。
与上述系统实施例相对应,本说明书还提供了系统调度方法实施例,阅读本实施例时,可与上述系统实施例相对应。图10示出了本说明书一个实施例提供的第三种系统调度方法的流程图,该方法应用于资源处理节点,具体包括以下步骤:
步骤1002:接收调度器发送的目标子任务的资源调度结果;
步骤1004:接收任务处理器发送的所述目标子任务的子任务单元;
步骤1006:基于所述资源调度结果对应的目标资源执行所述子任务单元。
可选地,所述接收调度器发送的目标子任务的资源调度结果之后,还包括:
接收所述任务处理器发送的所述目标子任务的目标子任务单元;
确定所述资源调度结果对应的目标资源,并通过所述目标资源执行所述目标子任务单元;
在所述目标子任务单元执行完成的情况下,向所述任务处理器发送所述目标子任务单元的执行结果。
可选地,所述向所述任务处理器发送所述目标子任务单元的执行结果之后,还包括:
接收所述任务处理器基于所述执行结果发送的剩余子任务单元;
通过所述目标子任务单元对应的目标资源执行所述剩余子任务单元。
具体的,执行目标子任务单元以及剩余子任务单元的具体实现过程,即为执行目标子任务中子任务单元的具体实现过程。
本说明书提供的一种所述资源调度方法,应用于资源处理节点,资源处理节点接收调度器发送的目标子任务的资源调度结果;接收任务处理器发送的所述目标子任务的子任务单元;基于所述资源调度结果对应的目标资源执行所述子任务单元,实现了在目标子任务的基础上进行接收资源调度结果,基于资源调度结果执行子任务单元。避免了为每个子任务单元单独接收资源调度所造成的资源交互,提高了处理效率,并提高了待处理任务的处理效率。
图11示出了根据本说明书一个实施例提供的一种计算设备1100的结构框图。该计算设备1100的部件包括但不限于存储器1110和处理器1120。处理器1120与存储器1110通过总线1130相连接,数据库1150用于保存数据。
计算设备1100还包括接入设备1140,接入设备1140使得计算设备1100能够经由一个或多个网络1160通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备1140可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本说明书的一个实施例中,计算设备1100的上述部件以及图11中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图11所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备1100可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备1100还可以是移动式或静止式的服务器。
其中,处理器1120用于执行如下计算机可执行指令,该计算机可执行指令被处理器执行时实现上述资源调度方法的步骤。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的资源调度方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述资源调度方法的技术方案的描述。
本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现上述资源调度方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的资源调度方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述资源调度方法的技术方案的描述。
本说明书一实施例还提供一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述资源调度方法的步骤。
上述为本实施例的一种计算机程序的示意性方案。需要说明的是,该计算机程序的技术方案与上述的资源调度方法的技术方案属于同一构思,计算机程序的技术方案未详细描述的细节内容,均可以参见上述资源调度方法的技术方案的描述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。
Claims (17)
1.一种资源调度系统,包括:
任务处理器、调度器以及资源处理节点;
其中,所述任务处理器,被配置为根据待处理任务的任务信息确定目标子任务,并确定所述目标子任务中的子任务单元,向所述调度器提交所述目标子任务的资源获取请求;
所述调度器,被配置为响应于所述资源获取请求获取初始处理节点的可调度资源信息,根据所述资源获取请求以及所述可调度资源信息计算所述目标子任务的资源调度结果,并将所述资源调度结果发送至所述任务处理器以及所述资源处理节点;
所述任务处理器,被配置为根据所述资源调度结果向所述资源处理节点发送所述子任务单元;
所述资源处理节点,被配置为接收所述资源调度结果以及所述子任务单元,基于所述资源调度结果对应的目标资源执行所述子任务单元。
2.根据权利要求1所述的资源调度系统,所述任务处理器,进一步被配置为:
根据所述待处理任务的任务信息确定子任务信息以及子任务执行顺序;根据所述子任务信息以及所述子任务执行顺序提取所述待处理任务中的目标子任务;根据所述目标子任务的目标子任务信息创建所述目标子任务中的子任务单元,并确定所述子任务单元的资源获取子信息;基于所述资源获取子信息创建所述目标子任务的资源获取请求,并向所述调度器提交所述资源获取请求。
3.根据权利要求1所述的资源调度系统,所述任务处理器,进一步被配置为:
根据所述资源调度结果在所述子任务单元中筛选目标子任务单元;基于所述资源调度结果向所述资源处理节点发送所述目标子任务单元;
相应地,所述资源处理节点,进一步被配置为:
接收所述目标子任务单元;确定所述资源调度结果对应的目标资源,并通过所述目标资源执行所述目标子任务单元;在所述目标子任务单元执行完成的情况下,向所述任务处理器发送所述目标子任务单元的执行结果。
4.根据权利要求3所述的资源调度系统,所述任务处理器,进一步被配置为:
基于所述执行结果在所述子任务单元中确定剩余子任务单元,并向所述资源处理节点发送所述剩余子任务单元;
相应地,所述资源处理节点,进一步被配置为:
接收所述任务处理器发送的剩余子任务单元;通过所述目标子任务单元对应的目标资源执行所述剩余子任务单元。
5.根据权利要求3所述的资源调度系统,所述任务处理器,还被配置为:
在所述目标子任务中存在未执行的子任务单元的情况下,基于所述执行结果创建子资源撤销信息,并将所述子资源撤销信息发送至所述调度器;
相应地,所述调度器,还被配置为:
基于所述子资源撤销信息,更新所述资源获取请求对应的未调度资源信息。
6.根据权利要求3所述的资源调度系统,所述任务处理器,还被配置为:
在所述目标子任务中不存在未执行的子任务单元的情况下,基于所述执行结果创建子资源归还信息,并将所述子资源归还信息发送至所述调度器;
相应地,所述调度器,还被配置为:
基于所述子资源归还信息,更新所述资源获取请求对应的资源调度信息。
7.根据权利要求1所述的资源调度系统,所述任务处理器,还被配置为:
在所述子任务单元执行完成的情况下,根据所述待处理任务的任务信息确定所述目标子任务之后待执行的第二目标子任务,将所述第二目标子任务作为所述目标子任务,并返回执行所述确定所述目标子任务中的子任务单元步骤。
8.根据权利要求1所述的资源调度系统,所述调度器,进一步被配置为:
确定所述资源获取请求对应的预设调度算法;根据所述可调度资源信息以及所述预设调度算法确定所述资源获取请求对应的资源处理节点以及所述资源处理节点对应的资源调度信息;将所述资源调度信息作为所述资源调度结果。
9.根据权利要求8所述的资源调度系统,所述调度器,进一步被配置为:
根据所述可调度资源信息以及所述资源获取请求携带的资源获取信息,在初始处理节点中筛选候选处理节点;根据所述候选处理节点对应的节点信息以及预设评分规则对所述候选处理节点进行评分,获得每个候选处理节点的节点评分;基于所述节点评分在所述候选处理节点中筛选资源处理节点;根据资源获取信息,确定所述资源处理节点对应的资源调度信息。
10.根据权利要求8所述的资源调度系统,所述调度器,进一步被配置为:
在监听到初始处理节点的可调度资源信息存在变更的情况下,在所述初始处理节点中确定待调度的候选资源处理节点以及确定待遍历的目标请求队列;基于所述候选资源处理节点的目标可调度资源信息以及预设遍历顺序遍历所述目标请求队列中的队列资源获取请求;在所述目标可调度资源信息满足所述资源获取请求对应的资源获取条件的情况下,将所述候选资源处理节点作为所述资源获取请求的资源处理节点;根据所述资源获取请求的资源获取信息,确定所述资源处理节点对应的资源调度信息。
11.根据权利要求1所述的资源调度系统,所述调度器,进一步被配置为:
获取所述目标请求队列中的队列资源获取请求;根据所述队列资源获取请求的请求优先级以及资源获取信息,构建请求树;遍历所述请求树中的所述队列资源获取请求。
12.根据权利要求1所述的资源调度系统,所述调度器,还被配置为:
在监听到待处理任务的情况下,在初始处理节点中确定目标处理节点,向所述目标处理节点发送所述待处理任务的任务信息;
相应地,所述目标处理节点,被配置为:
接收所述任务信息,并基于所述任务信息启动所述待处理任务对应的任务处理器。
13.一种资源调度方法,应用于任务处理器,包括:
根据待处理任务的任务信息确定目标子任务,并确定所述目标子任务中的子任务单元,向调度器提交所述目标子任务的资源获取请求;
接收所述调度器返回的所述资源获取请求的资源调度结果;
根据所述资源调度结果向资源处理节点发送所述子任务单元。
14.一种资源调度方法,应用于调度器,包括:
接收任务处理器发送的目标子任务的资源获取请求;
响应于所述资源获取请求获取初始处理节点的可调度资源信息;
根据所述资源获取请求以及所述可调度资源信息计算所述目标子任务的资源调度结果;
并将所述资源调度结果发送至任务处理器以及资源处理节点。
15.一种资源调度方法,应用于资源处理节点,包括:
接收调度器发送的目标子任务的资源调度结果;
接收任务处理器发送的所述目标子任务的子任务单元;
基于所述资源调度结果对应的目标资源执行所述子任务单元。
16.一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求13-15任意一项所述资源调度方法的步骤。
17.一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求13-15任意一项所述资源调度方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210096647.3A CN114595041A (zh) | 2022-01-26 | 2022-01-26 | 资源调度系统以及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210096647.3A CN114595041A (zh) | 2022-01-26 | 2022-01-26 | 资源调度系统以及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114595041A true CN114595041A (zh) | 2022-06-07 |
Family
ID=81805789
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210096647.3A Pending CN114595041A (zh) | 2022-01-26 | 2022-01-26 | 资源调度系统以及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114595041A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115994022A (zh) * | 2023-03-17 | 2023-04-21 | 北京百度网讯科技有限公司 | 算法服务的调用方法、装置、电子设备和存储介质 |
-
2022
- 2022-01-26 CN CN202210096647.3A patent/CN114595041A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115994022A (zh) * | 2023-03-17 | 2023-04-21 | 北京百度网讯科技有限公司 | 算法服务的调用方法、装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8984524B2 (en) | System and method of using transaction IDS for managing reservations of compute resources within a compute environment | |
US8640137B1 (en) | Methods and apparatus for resource management in cluster computing | |
US20200174844A1 (en) | System and method for resource partitioning in distributed computing | |
CN109564528B (zh) | 分布式计算中计算资源分配的系统和方法 | |
CN111367630A (zh) | 一种基于云计算的多用户多优先级的分布式协同处理方法 | |
CN110221920B (zh) | 部署方法、装置、存储介质及系统 | |
CN110166507B (zh) | 多资源调度方法和装置 | |
CN105786603B (zh) | 一种基于分布式的高并发业务处理系统及方法 | |
CN111427675B (zh) | 一种数据处理方法、装置以及计算机可读存储介质 | |
CN110569252B (zh) | 一种数据处理系统及方法 | |
Song et al. | Gaia scheduler: A kubernetes-based scheduler framework | |
CN108170417B (zh) | 一种在mesos集群中集成高性能的作业调度框架的方法和装置 | |
Sreenivasulu et al. | Hybrid optimization algorithm for task scheduling and virtual machine allocation in cloud computing | |
CN116010064A (zh) | Dag作业调度和集群管理的方法、系统及装置 | |
CN114595041A (zh) | 资源调度系统以及方法 | |
US20120059938A1 (en) | Dimension-ordered application placement in a multiprocessor computer | |
Liu et al. | KubFBS: A fine‐grained and balance‐aware scheduling system for deep learning tasks based on kubernetes | |
CN111290842A (zh) | 一种任务执行方法和装置 | |
Wu et al. | Abp scheduler: Speeding up service spread in docker swarm | |
Partheeban et al. | Versatile provisioning and workflow scheduling in WaaS under cost and deadline constraints for cloud computing | |
Abhishek et al. | Framework for containers orchestration to handle the scientific workloads using Kubernetes | |
CN113297304B (zh) | 数据导入系统及方法 | |
Kaladevi et al. | Processor co-allocation enabling advanced reservation of jobs in MultiCluster systems | |
CN116594784B (zh) | 一种边边调度方法、装置、系统和可读存储介质 | |
Naresh et al. | Resource allocation methods in cloud computing: survey |
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 |