CN109240825B - 弹性任务调度方法、装置、设备及计算机可读存储介质 - Google Patents

弹性任务调度方法、装置、设备及计算机可读存储介质 Download PDF

Info

Publication number
CN109240825B
CN109240825B CN201810925163.9A CN201810925163A CN109240825B CN 109240825 B CN109240825 B CN 109240825B CN 201810925163 A CN201810925163 A CN 201810925163A CN 109240825 B CN109240825 B CN 109240825B
Authority
CN
China
Prior art keywords
resource
task
tasks
resources
instance
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
Application number
CN201810925163.9A
Other languages
English (en)
Other versions
CN109240825A (zh
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.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Advanced New Technologies 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 Advanced New Technologies Co Ltd filed Critical Advanced New Technologies Co Ltd
Priority to CN201810925163.9A priority Critical patent/CN109240825B/zh
Publication of CN109240825A publication Critical patent/CN109240825A/zh
Application granted granted Critical
Publication of CN109240825B publication Critical patent/CN109240825B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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/5011Allocation 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/5016Allocation 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
    • 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
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/503Resource availability

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)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本公开实施例提供弹性任务调度方法、装置、设备及计算机可读存储介质。弹性任务调度方法包括响应于接收到的任务控制请求,将目标任务放入队列并检查队列中的任务;取出队列中的任务,读取任务所需的资源数值,并发出资源申请请求;响应于资源申请请求,在资源池中检索是否存在空闲资源;当检索出资源池中存在空闲资源时,根据资源申请请求中记载的任务所需的资源数值分配空闲资源,其中,根据任务所需的资源数值对资源进行分片,建立资源分片与代理实例的关联关系,代理实例与资源实例一对一映射,可以对任务的资源需求进行动态计算、也可静态配置,从而根据需求对资源实例中的空闲资源进行选择。即,可以利用空闲资源,大小任务交叉执行。

Description

弹性任务调度方法、装置、设备及计算机可读存储介质
技术领域
本公开实施例涉及互联网技术领域,尤其涉及弹性任务调度方法、装置、设备及计算机可读存储介质。
背景技术
在互联网领域,用户会向诸如大数据分布式内存计算平台之类的平台提供大量计算任务,但这些任务的资源需求相差巨大。大任务计算耗时可以达到小时、天级别,小任务可能只需要几分钟。如果大任务在执行过程中独占资源,那么小任务就必须要等待。因此,小任务的响应时间难以得到保证,另一方面资源的利用效率也不高。
发明内容
有鉴于此,本公开第一方面提供了一种弹性任务调度方法,包括:
响应于接收到的任务控制请求,将目标任务放入队列并检查队列中的任务;取出队列中的任务,读取所述任务所需的资源数值,并发出资源申请请求;
响应于所述资源申请请求,在资源池中检索是否存在空闲资源;
当检索出资源池中存在空闲资源时,根据所述资源申请请求中记载的任务所需的资源数值分配空闲资源,其中,根据所述任务所需的资源数值对资源进行分片,建立资源分片与代理实例的关联关系,所述代理实例与资源实例一对一映射。
本公开第二方面提供了一种弹性任务调度装置,包括:
任务调度模块,被配置为响应于接收到的任务控制请求,将目标任务放入队列并检查队列中的任务;取出队列中的任务,读取所述任务所需的资源数值,并发出资源申请请求;
资源检索模块,被配置为响应于所述资源申请请求,在资源池中检索是否存在空闲资源;
弹性资源管理模块,被配置为当所述资源检索模块检索出资源池中存在空闲资源时,根据所述资源申请请求中记载的任务所需的资源数值分配空闲资源,其中,根据所述任务所需的资源数值对资源进行分片,建立资源分片与代理实例的关联关系,所述代理实例与资源实例一对一映射。
本公开第三方面提供了一种电子设备,包括存储器和处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现如第一方面所述的方法。
本公开第四方面提供了一种计算机可读存储介质,其上存储有计算机指令,该计算机指令被处理器执行时实现如第一方面所述的方法。
在本公开实施方式中,通过响应于接收到的任务控制请求,将目标任务放入队列并检查队列中的任务;取出队列中的任务,读取所述任务所需的资源数值,并发出资源申请请求;响应于所述资源申请请求,在资源池中检索是否存在空闲资源;当检索出资源池中存在空闲资源时,根据所述资源申请请求中记载的任务所需的资源数值分配空闲资源,其中,根据所述任务所需的资源数值对资源进行分片,建立资源分片与代理实例的关联关系,所述代理实例与资源实例一对一映射,可以对任务的资源需求进行动态计算、也可静态配置,从而根据需求对资源实例中的空闲资源进行选择。即,可以利用大任务的空闲资源,大小任务可以交叉执行。一方面可以提升小任务的响应时间,另一方面可以提升资源的利用效率。
本公开的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本公开实施例或相关技术中的技术方案,下面将对示例性实施例或相关技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本公开的一些示例性实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出根据本公开一实施方式的弹性任务调度方法的流程图;
图2示出根据本公开另一实施方式的弹性任务调度方法的流程图;
图3示出根据本公开另一实施方式的弹性任务调度方法的流程图;
图4示出根据本公开一实施方式的弹性任务调度装置的结构框图;
图5示出根据本公开另一实施方式的弹性任务调度装置的结构框图;
图6示出根据本公开另一实施方式的弹性任务调度装置的结构框图;
图7示出根据本公开一实施方式的弹性任务调度方法的应用场景的示意图;
图8示出根据本公开一实施方式的设备的结构框图;
图9是适于用来实现根据本公开一实施方式的弹性任务调度方法的计算机系统的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本公开方案,下面将结合本公开示例性实施例中的附图,对本公开示例性实施例中的技术方案进行清楚、完整地描述。
在本公开的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
下面将结合本公开示例性实施例中的附图,对本公开示例性实施例中的技术方案进行清楚、完整地描述,显然,所描述的示例性实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。.
图1示出根据本公开一实施方式的弹性任务调度方法的流程图。该方法可以包括步骤S101、S102和S103。
在步骤S101中,响应于接收到的任务控制请求,将目标任务放入队列并检查队列中的任务;取出队列中的任务,读取任务所需的资源数值,并发出资源申请请求。
在步骤S102中,响应于资源申请请求,在资源池中检索是否存在空闲资源。
在步骤S103中,当检索出资源池中存在空闲资源时,根据资源申请请求中记载的任务所需的资源数值分配空闲资源,其中,根据任务所需的资源数值对资源进行分片,建立资源分片与代理实例的关联关系,代理实例与资源实例一对一映射。
在本公开的一个实施例中,资源可以是Spark资源。在本申请的实施例中,spark指的是一种大数据分布式内存计算平台。资源申请请求可以指的是向spark平台申请资源的请求。根据本公开的方案,为了获得更好的用户体验,可以让小任务与大任务共享spark资源实例(如:spark context)。由于spark平台的作业调度器本身是线程安全的,允许多线程任务提交。因此,可以在大任务空闲时,交叉执行小任务。一方面可以提升小任务的响应时间,另一方面可以提升资源的利用效率。
在本公开的一个实施例中,任务控制请求可以是由用户提交的,也可以是由系统定时器提交的。在本公开的一个实施例中,当希望利用诸如Spark资源之类的平台资源处理某个业务时,可能会有一批任务需要执行,因此,可能会由用户或系统定时器提交一批任务控制请求。在本公开的一个实施例中,可以根据任务控制请求,将任务控制请求所对应的目标任务放入队列,队列中可以排列有多个任务。其中,所述队列可以是本地队列。
在本公开的一个实施例中,资源数值指的是执行任务时所需的资源的量。在本公开的一个实施例中,对提交的作业资源需求和诸如spark资源的资源实例进行数值虚拟化后,可以确定资源数值。因此,可以读取任务所需的资源数值,并发出资源申请请求。
在本公开的一个实施例中,资源池指的是映射到本地主机上的平台的资源池,例如,spark平台的资源池。
在本公开的一个实施例中,针对任务所需的资源数值分配空闲资源是弹性的资源分配方式。弹性的资源分配方式指的是任务的资源需求可以动态计算、也可静态配置,根据需求从空闲的资源实例中选择合适的资源。
在本公开的一个实施例中,根据任务所需的资源数值对资源进行分片指的是资源已经数值化,资源分片对应于所需的资源数值,将所需的空闲资源的分片分配给任务,另外,记录资源的空闲数值以及已用数值。在本公开的一个实施例中,建立资源分片与代理实例的关联关系指的是需要建立资源分片与代理实例之间的关系,以便管理资源分片。
在本公开的一个实施例中,代理实例作为资源实例在本地的映射与资源实例之间存在一对一映射关系。
在本公开的一个实施例中,如图1所示,还可以包括步骤S104。在步骤S104中,当检索出资源池中不存在空闲资源时,获取一个代理实例,并对代理实例所关联的资源虚拟数值化,针对任务所需的资源数值分配空闲资源,其中,空闲资源属于代理实例所关联的资源,所述代理实例与资源实例一对一映射。即,在本地不存在具有空闲资源的代理实例,或者不存在具有足够空闲资源的代理实例的情况下,需要获取一个代理实例。对代理实例所关联的资源虚拟数值化可以使得根据任务所需的资源数值将资源适当地分配给对应的任务。例如,将代理实例中的资源在本地虚拟数值化,总数值为100,此时,代理实例的资源的初始空闲度为100。在一个例子中,当任务所需的资源数值是20时,可以将空闲度为100的代理实例的资源中的20份资源分配给任务。可以理解,代理实例的资源总数值为100仅仅是示例,总数值可以为任意值。
在本公开的一个实施例中,步骤S103包括:在资源池中检索空闲度最低且满足资源申请请求中记载的任务所需的资源数值的代理实例。例如,有两个代理实例,资源总数均为100,第一个代理实例的空闲数为50,第二个代理实例的空闲数为30。此时,当任务所需的资源数值为20时,将检索到的两个代理实例中的空闲度最低的第二个代理实例中的资源分配给该任务。在此情况下,可以最充分地利用代理实例中的空闲资源。也可以认为,此时是从空闲的资源实例中选择了最优的资源实例。
在本公开的一个实施例中,如图1所示,还可以包括步骤S105。在步骤S105中,在针对任务所需的资源数值分配空闲资源后,响应于作业的提交向服务集群申请实际资源。即,代理实例是资源实例的本地映射,因此,在针对任务所需的资源数值分配空闲资源后,会需要向服务集群(例如,spark集群)进行作业提交,以申请实际资源。
在本公开的一个实施例中,在针对任务所需的资源数值分配空闲资源后,响应于作业的提交向服务集群申请实际资源,包括:根据租户配置,对实际资源进行分组隔离,其中,可以将不同类型的任务提交到对应的资源实例,以根据业务属性进行资源隔离。通过资源隔离,可以按业务需求,托管不同规模的资源实例。
在本公开实施方式中,通过响应于接收到的任务控制请求,将目标任务放入队列并检查队列中的任务;取出队列中的任务,读取任务所需的资源数值,并发出资源申请请求;响应于资源申请请求,在资源池中检索是否存在空闲资源;当检索出资源池中存在空闲资源时,根据资源申请请求中记载的任务所需的资源数值分配空闲资源,其中,根据任务所需的资源数值对资源进行分片,建立资源分片与代理实例的关联关系,代理实例与资源实例一对一映射,可以对任务的资源需求进行动态计算、也可静态配置,从而根据需求对资源实例中的空闲资源进行选择。即,可以利用大任务的空闲资源,大小任务可以交叉执行。一方面可以提升小任务的响应时间,另一方面可以提升资源的利用效率。
图2示出根据本公开另一实施方式的弹性任务调度方法的流程图。除了包括图1所示的步骤S101至S105,图2还包括步骤S201。
在步骤S201中,在释放资源时,根据所要释放的资源的标识找到与所要释放的资源关联的代理实例,以将所要释放的资源恢复为空闲资源。
在弹性资源释放时,根据待释放资源的标识,通过已分配的资源与代理实例的关联关系找到代理实例,恢复代理实例的空闲资源。如果恢复后空闲度达到最大值,则意味着本代理实例映射的物理资源已经没有任务使用。因此,会发出释放请求,释放物理资源。即,可以保证资源的弹性。
图3示出根据本公开另一实施方式的弹性任务调度方法的流程图。除了包括图1所示的步骤S101至S105,图3还在步骤S101之前包括步骤S301。
在步骤S301中,对任务控制请求进行随机分发,以避免任务被集中于特定设备。
响应于用户或系统定时器提供的任务控制请求,根据当前系统环境,将任务控制请求再作一次随机的分发。因此,可以防止任务被过多的集中在一台机器上。例如:如果某台本地机器有个定时器会定期地生成一批任务,来处理某个业务,这时可以将这些任务分散到整个应用集群中。
图7示出根据本公开一实施方式的弹性任务调度方法的应用场景的示意图。图7的场景中,以spark平台为例来描述根据本公开实施例的弹性任务调度方法。
如图7所示,当用户发起启动实例时,任务控制服务模块负责响应用户和系统定时器提供的任务控制请求,根据当前系统环境,将任务控制请求再作一次随机的分发。
任务调度模块接到用户控制请求后,将目标任务进行加载并作初始化。初始化完成后放本地队列。独立的调度线程会检查队列中的任务,依据FIFO策略取出任务,读取该任务所需要资源数值,向弹性资源管理器申请资源。在申请资源时,需要在应用集群范围内,查找可用资源最小,但满足当前任务所需目标机器。如果找到,则向该机器申请指定数值的弹性资源。查找最小的原因是尽量使用已经存在spark资源实例,减少物理资源浪费。一旦资源申请成功,任务进入运行状态,并调用spark的任务状态查接口,通过定时轮询的方式检查作业完成状态。任务异常或正常完成后,释放弹性资源。
弹性资源管理模块负责资源实例(spark context)申请到的资源。在本地进行数值虚拟化,比如0~100的区间。当分配请求过来时,会先从本地资源池中,找到是否有空闲块。如果没有,则会向spark资源实例管理申请一个服务实例。并对此实例进行虚拟化,初始值空闲度为100。如果该模块发现有空闲资源,则根据请求的大小,对资源进行分片。并记录空闲数,已用数。并建立分片与代理实例进行关联关系。在弹性资源释放时,根据所属的id通过上述的关联关系找到代理实例,恢复空闲数。如果空闲度达到最大值,则意味着本实例代理的spark物理资源已经没有任务使用。因此,会向代理实例管理模块发出释放请求,关闭spark物理资源。Sparkderver shell主程序退出,释资源释放。
Spark资源实例管理模块是本地机器与spark集群交互的界面,它负责实际spark资源的申请及本地作业提交,是spark资源在本地的映射,代理服务在本地独立的进程中运行。代理实例与spark资源实例一一映射,并负责与远端Spark Driver通信。代理实例在启动时,通过Spark cluster模式,向spark集群申请物理资源并提交一个专门的drivershell程序。该driver shell程序在初始化环境后进入等待状态,直到实际的作业提交上来。Spark资源实例管理模块根据租户配置,对spark资源进行分组隔离。不同类型的任务,可以提交到对应的实例上。以达到根据业务属性进行资源隔离。还可以包括Spark日志管理模块,负责从spark derver端拉取业务程序打印出的日志到本地应用。通过一个定时器,在spark代理实例运行期间,周期性地提交一个日志同步作业。该作业会在driver里读取出指定大小的日志数据,并通过rpc方式返回,写到本地。每次拉取时,记录日志文件拉取的位置,接着从上一个位置读取。
图4示出根据本公开一实施方式的弹性任务调度装置的结构框图。如图4所示,弹性任务调度装置可以包括任务调度模块401、资源检索模块402和弹性资源管理模块403。
任务调度模块401被配置为响应于接收到的任务控制请求,将目标任务放入队列并检查队列中的任务;取出队列中的任务,读取任务所需的资源数值,并发出资源申请请求。
资源检索模块402被配置为响应于资源申请请求,在资源池中检索是否存在空闲资源。
弹性资源管理模块403被配置为当资源检索模块402检索出资源池中存在空闲资源时,根据资源申请请求中记载的任务所需的资源数值分配空闲资源,其中,根据任务所需的资源数值对资源进行分片,建立资源分片与代理实例的关联关系,代理实例与资源实例一对一映射。
在本公开的一个实施例中,资源可以是Spark资源。在本申请的实施例中,spark指的是一种大数据分布式内存计算平台。资源申请请求可以指的是向spark平台申请资源的请求。根据本公开的方案,为了获得更好的用户体验,可以让小任务与大任务共享spark资源实例(如:spark context)。由于spark平台的作业调度器本身是线程安全的,允许多线程任务提交。因此,可以在大任务空闲时,交叉执行小任务。一方面可以提升小任务的响应时间,另一方面可以提升资源的利用效率。
在本公开的一个实施例中,任务控制请求可以是由用户提交的,也可以是由系统定时器提交的。在本公开的一个实施例中,当希望利用诸如Spark资源之类的平台资源处理某个业务时,可能会有一批任务需要执行,因此,可能会由用户或系统定时器提交一批任务控制请求。在本公开的一个实施例中,可以根据任务控制请求,将任务控制请求所对应的目标任务放入队列,队列中可以排列有多个任务。其中,所述队列可以是本地队列。
在本公开的一个实施例中,资源数值指的是执行任务时所需的资源的量。在本公开的一个实施例中,对提交的作业资源需求和诸如spark资源的资源实例进行数值虚拟化后,可以确定资源数值。因此,可以读取任务所需的资源数值,并发出资源申请请求。
在本公开的一个实施例中,资源池指的是映射到本地主机上的平台的资源池,例如,spark平台的资源池。
在本公开的一个实施例中,针对任务所需的资源数值分配空闲资源是弹性的资源分配方式。弹性的资源分配方式指的是任务的资源需求可以动态计算、也可静态配置,根据需求从空闲的资源实例中选择合适的资源。
在本公开的一个实施例中,根据任务所需的资源数值对资源进行分片指的是资源已经数值化,资源分片对应于所需的资源数值,将所需的空闲资源的分片分配给任务,另外,记录资源的空闲数值以及已用数值。在本公开的一个实施例中,建立资源分片与代理实例的关联关系指的是需要建立资源分片与代理实例之间的关系,以便管理资源分片。
在本公开的一个实施例中,代理实例作为资源实例在本地的映射与资源实例之间存在一对一映射关系。
在本公开的一个实施例中,弹性资源管理模块403还被配置为:当资源检索模块402检索出资源池中不存在空闲资源时,获取一个代理实例,并对代理实例所关联的资源虚拟数值化,针对任务所需的资源数值分配空闲资源,其中,空闲资源属于代理实例所关联的资源,所述代理实例与资源实例一对一映射。即,在本地不存在具有空闲资源的代理实例,或者不存在具有足够空闲资源的代理实例的情况下,需要获取一个代理实例。对代理实例所关联的资源虚拟数值化可以使得根据任务所需的资源数值将资源适当地分配给对应的任务。例如,将代理实例中的资源在本地虚拟数值化,总数值为100,此时,代理实例的资源的初始空闲度为100。在一个例子中,当任务所需的资源数值是20时,可以将空闲度为100的代理实例的资源中的20份资源分配给任务。可以理解,代理实例的资源总数值为100仅仅是示例,总数值可以为任意值。
在本公开的一个实施例中,弹性资源管理模块403还被配置为:在资源池中检索空闲度最低且满足资源申请请求中记载的任务所需的资源数值的代理实例。例如,有两个代理实例,资源总数均为100,第一个代理实例的空闲数为50,第二个代理实例的空闲数为30。此时,当任务所需的资源数值为20时,将检索到的两个代理实例中的空闲度最低的第二个代理实例中的资源分配给该任务。在此情况下,可以最充分地利用代理实例中的空闲资源。也可以认为,此时是从空闲的资源实例中选择了最优的资源实例。
在本公开的一个实施例中,图4所示的装置还可以包括实际资源管理模块404。
实际资源管理模块404被配置为在针对任务所需的资源数值分配空闲资源后,响应于作业的提交向服务集群申请实际资源。即,代理实例是资源实例的本地映射,因此,在针对任务所需的资源数值分配空闲资源后,会需要向服务集群(例如,spark集群)进行作业提交,以申请实际资源。
在本公开的一个实施例中,实际资源管理模块404还被配置为根据租户配置,对实际资源进行分组隔离,其中,可以将不同类型的任务提交到对应的资源实例,以根据业务属性进行资源隔离。通过资源隔离,可以按业务需求,托管不同规模的资源实例。
在本公开实施方式中,通过任务调度模块,被配置为响应于接收到的任务控制请求,将目标任务放入队列并检查队列中的任务;取出队列中的任务,读取任务所需的资源数值,并发出资源申请请求;资源检索模块,被配置为响应于资源申请请求,在资源池中检索是否存在空闲资源;弹性资源管理模块,被配置为当资源检索模块检索出资源池中存在空闲资源时,根据资源申请请求中记载的任务所需的资源数值分配空闲资源,其中,根据任务所需的资源数值对资源进行分片,建立资源分片与代理实例的关联关系,代理实例与资源实例一对一映射,可以对任务的资源需求进行动态计算、也可静态配置,从而根据需求对资源实例中的空闲资源进行选择。即,可以利用大任务的空闲资源,大小任务可以交叉执行。一方面可以提升小任务的响应时间,另一方面可以提升资源的利用效率。
图5示出根据本公开另一实施方式的弹性任务调度装置的结构框图。除了包括如图4所示的任务调度模块401、资源检索模块402、弹性资源管理模块403和实际资源管理模块404之外,还可以包括资源释放模块501。
资源释放模块501被配置为在释放资源时,根据所要释放的资源的标识找到与所要释放的资源关联的代理实例,以将所要释放的资源恢复为空闲资源。
在弹性资源释放时,根据待释放资源的标识,通过已分配的资源与代理实例的关联关系找到代理实例,恢复代理实例的空闲资源。如果恢复后空闲度达到最大值,则意味着本代理实例映射的物理资源已经没有任务使用。因此,会发出释放请求,释放物理资源。即,可以保证资源的弹性。
图6示出根据本公开另一实施方式的弹性任务调度装置的结构框图。除了包括如图5所示的任务调度模块401、资源检索模块402、弹性资源管理模块403和实际资源管理模块404之外,还可以包括任务控制服务模块601。
任务控制服务模块601被配置为对任务控制请求进行随机分发,以避免任务被集中于特定设备。
响应于用户或系统定时器提供的任务控制请求,根据当前系统环境,将任务控制请求再作一次随机的分发。因此,可以防止任务被过多的集中在一台机器上。例如:如果某台本地机器有个定时器会定期地生成一批任务,来处理某个业务,这时可以将这些任务分散到整个应用集群中。
以上描述了弹性任务调度装置的内部功能和结构,在一个可能的设计中,该弹性任务调度系统的结构可实现为弹性任务调度设备,如图8中所示,该处理设备800可以包括处理器801以及存储器802。
所述存储器802用于存储支持弹性任务调度系统执行上述任一实施例中弹性任务调度方法的程序,所述处理器801被配置为用于执行所述存储器802中存储的程序。
所述存储器802用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器801执行。
所述处理器801用于执行前述各方法步骤中的全部或部分步骤。
其中,所述弹性任务调度设备的结构中还可以包括通信接口,用于弹性任务调度设备与其他设备或通信网络通信。
本公开示例性实施例还提供了一种计算机存储介质,用于储存所述弹性任务调度系统所用的计算机软件指令,其包含用于执行上述任一实施例中弹性任务调度方法所涉及的程序。
图9是适于用来实现根据本公开一实施方式的弹性任务调度方法的计算机系统的结构示意图。
如图9所示,计算机系统900包括中央处理单元(CPU)901,其可以根据存储在只读存储器(ROM)902中的程序或者从存储部分908加载到随机访问存储器(RAM)903中的程序而执行上述图1所示的实施方式中的各种处理。在RAM903中,还存储有系统900操作所需的各种程序和数据。CPU901、ROM902以及RAM903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
以下部件连接至I/O接口905:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至I/O接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。
特别地,根据本公开的实施方式,上文参考图1描述的方法可以被实现为计算机软件程序。例如,本公开的实施方式包括一种计算机程序产品,其包括有形地包含在及其可读介质上的计算机程序,所述计算机程序包含用于执行图1的数据处理方法的程序代码。在这样的实施方式中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。
附图中的流程图和框图,图示了按照本公开各种实施方式的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,路程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,并且/或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施方式中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
作为另一方面,本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施方式中所述装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本公开的方法。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (18)

1.一种弹性任务调度方法,其特征在于,包括:
响应于接收到的任务控制请求,将目标任务放入队列并检查队列中的任务;取出队列中的任务,读取所述任务所需的资源数值,并发出资源申请请求;
响应于所述资源申请请求,在资源池中检索是否存在空闲资源;所述资源池为映射到本地的平台的资源池;
当检索出资源池中存在空闲资源时,根据所述资源申请请求中记载的任务所需的资源数值分配空闲资源,其中,根据所述任务所需的资源数值对资源进行分片,建立资源分片与代理实例的关联关系,所述代理实例与资源实例一对一映射,所述代理实例为所述资源实例在本地的映射。
2.根据权利要求1所述的方法,其特征在于,还包括:
当检索出资源池中不存在空闲资源时,获取一个代理实例,并对所述代理实例所关联的资源虚拟数值化,针对所述任务所需的资源数值分配空闲资源,其中,空闲资源属于所述代理实例所关联的资源,所述代理实例与资源实例一对一映射。
3.根据权利要求1所述的方法,其特征在于,所述当检索出资源池中存在空闲资源时,根据所述资源申请请求中记载的任务所需的资源数值分配空闲资源,其中,根据所述任务所需的资源数值对资源进行分片,建立资源分片与代理实例的关联关系,所述代理实例与资源实例一对一映射,包括:
在资源池中检索空闲度最低且满足资源申请请求中记载的任务所需的资源数值的代理实例。
4.根据权利要求1或2所述的方法,其特征在于,还包括:
在针对所述任务所需的资源数值分配空闲资源后,响应于作业的提交向服务集群申请实际资源。
5.根据权利要求4所述的方法,其特征在于,所述在针对所述任务所需的资源数值分配空闲资源后,响应于作业的提交向服务集群申请实际资源,包括:
根据租户配置,对实际资源进行分组隔离,其中,可以将不同类型的任务提交到对应的资源实例,以根据业务属性进行资源隔离。
6.根据权利要求4所述的方法,其特征在于,还包括:
在释放资源时,根据所要释放的资源的标识找到与所要释放的资源关联的代理实例,以将所要释放的资源恢复为空闲资源。
7.根据权利要求1所述的方法,其特征在于,在响应于接收到的任务控制请求,将目标任务放入队列并检查队列中的任务之前,还包括:
对任务控制请求进行随机分发,以避免任务被集中于特定设备。
8.根据权利要求1所述的方法,其特征在于,所述资源是Spark资源。
9.一种弹性任务调度装置,其特征在于,包括:
任务调度模块,被配置为响应于接收到的任务控制请求,将目标任务放入队列并检查队列中的任务;取出队列中的任务,读取所述任务所需的资源数值,并发出资源申请请求;
资源检索模块,被配置为响应于所述资源申请请求,在资源池中检索是否存在空闲资源;所述资源池为映射到本地的平台的资源池;
弹性资源管理模块,被配置为当所述资源检索模块检索出资源池中存在空闲资源时,根据所述资源申请请求中记载的任务所需的资源数值分配空闲资源,其中,根据所述任务所需的资源数值对资源进行分片,建立资源分片与代理实例的关联关系,所述代理实例与资源实例一对一映射,所述代理实例为所述资源实例在本地的映射。
10.根据权利要求9所述的装置,其特征在于,弹性资源管理模块还被配置为:
当所述资源检索模块检索出资源池中不存在空闲资源时,获取一个代理实例,并对所述代理实例所关联的资源虚拟数值化,针对所述任务所需的资源数值分配空闲资源,其中,空闲资源属于所述代理实例所关联的资源,所述代理实例与资源实例一对一映射。
11.根据权利要求9所述的装置,其特征在于,所述弹性资源管理模块还被配置为:
在资源池中检索空闲度最低且满足资源申请请求中记载的任务所需的资源数值的代理实例。
12.根据权利要求9或10所述的装置,其特征在于,还包括:
实际资源管理模块,被配置为在针对所述任务所需的资源数值分配空闲资源后,响应于作业的提交向服务集群申请实际资源。
13.根据权利要求12所述的装置,其特征在于,所述实际资源管理模块被配置为:
根据租户配置,对实际资源进行分组隔离,其中,可以将不同类型的任务提交到对应的资源实例,以根据业务属性进行资源隔离。
14.根据权利要求12所述的装置,其特征在于,还包括:
资源释放模块,被配置为在释放资源时,根据所要释放的资源的标识找到与所要释放的资源关联的代理实例,以将所要释放的资源恢复为空闲资源。
15.根据权利要求9所述的装置,其特征在于,在所述任务调度模块之前,还包括:
任务控制服务模块,被配置为对任务控制请求进行随机分发,以避免任务被集中于特定设备。
16.根据权利要求9所述的装置,其特征在于,所述资源是Spark资源。
17.一种电子设备,其特征在于,包括存储器和处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现如权利要求1-8任一项所述的方法。
18.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,该计算机指令被处理器执行时实现如权利要求1-8任一项所述的方法。
CN201810925163.9A 2018-08-14 2018-08-14 弹性任务调度方法、装置、设备及计算机可读存储介质 Active CN109240825B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810925163.9A CN109240825B (zh) 2018-08-14 2018-08-14 弹性任务调度方法、装置、设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810925163.9A CN109240825B (zh) 2018-08-14 2018-08-14 弹性任务调度方法、装置、设备及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN109240825A CN109240825A (zh) 2019-01-18
CN109240825B true CN109240825B (zh) 2022-01-28

Family

ID=65071164

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810925163.9A Active CN109240825B (zh) 2018-08-14 2018-08-14 弹性任务调度方法、装置、设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN109240825B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110083442B (zh) * 2019-03-18 2021-12-07 咪咕文化科技有限公司 一种用户任务的操作方法、服务器及可存储介质
CN112395077A (zh) * 2019-08-16 2021-02-23 阿里巴巴集团控股有限公司 资源控制方法、装置及系统
CN112817706B (zh) * 2019-11-15 2023-06-02 杭州海康威视数字技术股份有限公司 一种分布式任务调度系统和方法
CN111679900B (zh) * 2020-06-15 2023-10-31 杭州海康威视数字技术股份有限公司 任务处理方法和装置
CN112650575B (zh) * 2021-01-15 2023-08-18 百度在线网络技术(北京)有限公司 资源调度方法、装置和云端服务系统
CN113726636B (zh) * 2021-08-31 2022-11-29 华云数据控股集团有限公司 软件转发设备的数据转发方法、系统及电子设备
WO2023160629A1 (zh) * 2022-02-25 2023-08-31 本源量子计算科技(合肥)股份有限公司 量子控制系统的处理装置、方法、量子计算机、介质和电子装置
CN115469979B (zh) * 2022-02-25 2024-05-07 本源量子计算科技(合肥)股份有限公司 量子控制系统的调度装置、方法以及量子计算机
CN115470915B (zh) * 2022-03-16 2024-04-05 本源量子计算科技(合肥)股份有限公司 量子计算机的服务器系统及其实现方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101916209A (zh) * 2010-08-06 2010-12-15 华东交通大学 一种多核处理器集群任务资源分配方法
CN103294531A (zh) * 2012-03-05 2013-09-11 阿里巴巴集团控股有限公司 一种任务分配方法及系统
CN104102548A (zh) * 2014-08-04 2014-10-15 北京京东尚科信息技术有限公司 任务资源调度处理方法和系统
CN104461744A (zh) * 2014-12-18 2015-03-25 曙光云计算技术有限公司 一种资源分配方法及装置
CN107018091A (zh) * 2016-02-29 2017-08-04 阿里巴巴集团控股有限公司 资源请求的调度方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050114858A1 (en) * 2003-11-25 2005-05-26 Telefonaktiebolaget L M Ericsson Cancelled task management in a computer system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101916209A (zh) * 2010-08-06 2010-12-15 华东交通大学 一种多核处理器集群任务资源分配方法
CN103294531A (zh) * 2012-03-05 2013-09-11 阿里巴巴集团控股有限公司 一种任务分配方法及系统
CN104102548A (zh) * 2014-08-04 2014-10-15 北京京东尚科信息技术有限公司 任务资源调度处理方法和系统
CN104461744A (zh) * 2014-12-18 2015-03-25 曙光云计算技术有限公司 一种资源分配方法及装置
CN107018091A (zh) * 2016-02-29 2017-08-04 阿里巴巴集团控股有限公司 资源请求的调度方法和装置

Also Published As

Publication number Publication date
CN109240825A (zh) 2019-01-18

Similar Documents

Publication Publication Date Title
CN109240825B (zh) 弹性任务调度方法、装置、设备及计算机可读存储介质
CN110888743B (zh) 一种gpu资源使用方法、装置及存储介质
US10275851B1 (en) Checkpointing for GPU-as-a-service in cloud computing environment
US7793288B2 (en) Automatic resource management of a guest operating system using information in data set indicating minimum system requirement
US20190155660A1 (en) Scheduling system for computational work on heterogeneous hardware
US9223596B1 (en) Virtual machine fast provisioning based on dynamic criterion
US10296389B2 (en) Time-bound conditional resource deallocation
US20170017511A1 (en) Method for memory management in virtual machines, and corresponding system and computer program product
CN110162397B (zh) 资源分配方法、装置及系统
KR101474872B1 (ko) 클라우드 상에 가상 클러스터들의 효율적 구축을 위한 탄력적 가상 클러스터 관리 방법, 이를 이용한 가상 클러스터 관리 장치 및 클라우드 시스템
US20110107344A1 (en) Multi-core apparatus and load balancing method thereof
CN104102548A (zh) 任务资源调度处理方法和系统
US20120144389A1 (en) Optimizing virtual image deployment for hardware architecture and resources
WO2020157599A1 (en) Engine pre-emption and restoration
CN113886089A (zh) 一种任务处理方法、装置、系统、设备及介质
CN113821308A (zh) 片上系统、虚拟机任务处理方法及设备、存储介质
CN112286688A (zh) 一种内存管理和使用方法、装置、设备和介质
CN109189581B (zh) 一种作业调度方法和装置
CN118210632A (zh) 内存分配方法、装置、电子设备及存储介质
US9088569B2 (en) Managing access to a shared resource using client access credentials
CA2848683C (en) Working set adjustment in a managed environment
US10372470B2 (en) Copy of memory information from a guest transmit descriptor from a free pool and assigned an intermediate state to a tracking data structure
EP4109255A1 (en) Scheduling in a container orchestration system utilizing hardware topology hints
US11663026B2 (en) Allocation of accelerator resources based on job type
CN112052084B (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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200921

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20200921

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.

GR01 Patent grant
GR01 Patent grant