CN110442454B - 一种资源调度方法、装置及计算机设备 - Google Patents

一种资源调度方法、装置及计算机设备 Download PDF

Info

Publication number
CN110442454B
CN110442454B CN201910711579.5A CN201910711579A CN110442454B CN 110442454 B CN110442454 B CN 110442454B CN 201910711579 A CN201910711579 A CN 201910711579A CN 110442454 B CN110442454 B CN 110442454B
Authority
CN
China
Prior art keywords
computing
task
computing units
static
type
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
CN201910711579.5A
Other languages
English (en)
Other versions
CN110442454A (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.)
Lenovo Beijing Ltd
Original Assignee
Lenovo Beijing 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 Lenovo Beijing Ltd filed Critical Lenovo Beijing Ltd
Priority to CN201910711579.5A priority Critical patent/CN110442454B/zh
Publication of CN110442454A publication Critical patent/CN110442454A/zh
Application granted granted Critical
Publication of CN110442454B publication Critical patent/CN110442454B/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/5022Mechanisms to release 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及一种资源调度方法、装置及计算机设备,该方法针对待处理的第一任务,在基于申请到的资源为其构建多个计算单元后,进一步将各计算单元处理为至少包括静态与动态两种类型,之后针对第一任务的数据存储需求,利用静态计算单元的资源来存储数据,而针对第一任务空闲时的资源释放需求,则释放掉至少部分动态计算单元及其资源。由此,本申请通过将第一任务的计算单元处理为静态与动态两种类型,并区别化地、有选择性地利用静态计算单元的资源进行数据存储、利用动态计算单元及其资源参与资源释放,实现了在保证缓存(或持久化)数据完整的情况下,对计算资源进行动态管理,可有效缓解Spark等计算平台中计算性能与资源占用相矛盾的问题。

Description

一种资源调度方法、装置及计算机设备
技术领域
本申请属于分布式资源管理技术领域,尤其涉及一种资源调度方法、装置及计算机设备。
背景技术
Spark是专为大规模数据处理而设计的快速、通用的计算引擎,可用来完成各种各样的运算,包括SQL(Structured Query Language,结构化查询语言)查询、文本处理、机器学习等。
Spark提供了一个开源的分布式集群计算平台,Spark速度非常快的原因之一,就是在不同操作中可以在其计算单元(Spark Executor)的内存中缓存或持久化关键RDD(Resilient Distributed Datasets,弹性分布式数据集),当缓存或持久化某个RDD后,可将该RDD在后续针对该RDD的其他动作中重用,这使得后续的动作变得更加迅速;也即,Spark通过在其计算单元的内存中缓存或持久化关键RDD来进行高效的处理,且基于负载均衡考虑,实际应用中,通常均匀地在不同服务器节点的不同计算单元中进行RDD缓存或持久化。
从资源占用角度来说,通常会根据任务的计算需求从平台资源池中动态申请/释放计算资源,其中,当计算繁忙时需申请更多的计算资源,而当计算空闲时则相应需释放富余的计算资源。但该动态申请/释放资源的动态资源管理机制,在Spark应用环境中,要么以Spark的计算性能为重不释放已缓存有RDD的闲置计算单元,要么以节约资源为重释放已缓存有RDD的闲置计算单元,这样已缓存的RDD也会随着其所对应的计算单元的释放而丢失,这就导致无法保证后续的计算性能。从而,对于Spark应用环境来说,存在计算性能与资源占用相矛盾的问题。
发明内容
有鉴于此,本申请的目的在于提供一种资源调度方法、装置及计算机设备,用于在保证缓存(或持久化)数据完整的情况下,对计算资源进行动态管理,以缓解Spark等计算平台中计算性能与资源占用相矛盾的问题。
为此,本发明公开如下技术方案:
一种资源调度方法,包括:
获得待处理的第一任务;
确定处理所述第一任务所需的计算单元的第一数量;
申请第一数量的计算单元所对应的资源;
基于申请到的资源构建第一数量的计算单元;
将所述第一数量的计算单元处理为至少包括静态类型与动态类型两种计算单元;
利用第一数量计算单元中的至少部分计算单元处理所述第一任务;
其中,若所述第一任务需存储待重用的数据,则利用静态类型的计算单元对应的资源进行待重用数据的存储;若所述第一任务进入符合第一条件的空闲状态,则释放至少部分动态类型的计算单元及其对应的资源。
上述方法,优选的,所述将所述第一数量的计算单元处理为至少包括静态类型与动态类型两种计算单元,包括:
将所述第一数量的计算单元中的一部分计算单元标记为静态类型,静态类型除外的其它计算单元标记为动态类型。
上述方法,优选的,所述将所述第一数量的计算单元中的一部分计算单元标记为静态类型,静态类型除外的其它计算单元标记为动态类型,包括:
按照预先设定的比例,将所述第一数量的计算单元中的第二数量的计算单元标记为静态类型,静态类型除外的其它计算单元标记为动态类型;
或者,
根据所述第一任务的处理需求,将所述第一数量的计算单元中的第三数量的计算单元标记为静态类型,静态类型除外的其它计算单元标记为动态类型。
上述方法,优选的,所述申请到的资源包括分布式集群的多个节点中的资源;
所述基于申请到的资源构建第一数量的计算单元,包括:
在申请到的资源所处的每个节点中构建计算单元;
所述将所述第一数量的计算单元处理为至少包括静态类型与动态类型两种计算单元,包括:
将构建有多个计算单元的每个节点上构建的计算单元处理为静态类型与动态类型两种计算单元。
上述方法,优选的,该方法在释放动态类型的计算单元及其对应的资源之后,还包括:
若所述第一任务进入符合第二条件的繁忙状态,则再次进行资源申请及计算单元构建,以辅助已有的计算单元对所述第一任务进行处理;
将再次构建的计算单元中的至少部分计算单元标记为动态类型。
一种资源调度装置,包括:
获取单元,用于获得待处理的第一任务;
确定单元,用于确定处理所述第一任务所需的计算单元的第一数量;
申请单元,用于申请第一数量的计算单元所对应的资源;
构建单元,用于基于申请到的资源构建第一数量的计算单元;
第一处理单元,用于将所述第一数量的计算单元处理为至少包括静态类型与动态类型两种计算单元;
第二处理单元,用于利用第一数量计算单元中的至少部分计算单元处理所述第一任务;
其中,若所述第一任务需存储待重用的数据,则利用静态类型的计算单元对应的资源进行待重用数据的存储;若所述第一任务进入符合第一条件的空闲状态,则释放至少部分动态类型的计算单元及其对应的资源。
上述装置,优选的,所述第一处理单元,具体用于:
将所述第一数量的计算单元中的一部分计算单元标记为静态类型,静态类型除外的其它计算单元标记为动态类型。
上述装置,优选的,所述第一处理单元将所述第一数量的计算单元中的一部分计算单元标记为静态类型,静态类型除外的其它计算单元标记为动态类型,具体包括:
按照预先设定的比例,将所述第一数量的计算单元中的第二数量的计算单元标记为静态类型,静态类型除外的其它计算单元标记为动态类型;
或者,
根据所述第一任务的处理需求,将所述第一数量的计算单元中的第三数量的计算单元标记为静态类型,静态类型除外的其它计算单元标记为动态类型。
上述装置,优选的,在释放动态类型的计算单元及其对应的资源之后,若所述第一任务进入符合第二条件的繁忙状态,则:
所述申请单元还用于再次申请资源;
所述构建单元还用于基于再次申请到的资源再次构建计算单元;
所述第一处理单元还用于将再次构建的计算单元中的至少部分计算单元标记为动态类型。
一种计算机设备,包括:
存储器,用于至少存储一组指令集;
处理器,用于调用并执行所述指令集,通过执行所述指令集执行如权利要求1-5任一项所述的资源调度方法。
由以上方案可知,本申请提供的资源调度方法、装置及计算机设备,针对待处理的第一任务,在基于申请到的资源为其构建多个计算单元后,进一步将各计算单元处理为至少包括静态与动态两种类型,之后针对第一任务的数据存储需求,利用静态计算单元对应的资源来存储数据,而针对第一任务空闲时的资源释放需求,则释放掉至少部分动态计算单元及其资源。由此,本申请通过将第一任务的计算单元处理为静态与动态两种不同的类型,并区别化地、有选择性地利用静态计算单元的资源进行数据存储、利用动态计算单元及其资源参与资源释放(而静态计算单元及其资源则不参与资源释放),实现了在保证缓存(或持久化)数据完整的情况下,对计算资源进行动态管理,可有效缓解Spark等计算平台中计算性能与资源占用相矛盾的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是基于分布式集群计算平台的任务请求及资源调度示意图;
图2是本申请实施例一可选实施方式中资源调度方法的一种流程示意图;
图3是本申请实施例一可选实施方式中资源调度方法的另一种流程示意图;
图4是本申请实施例一可选实施方式中资源调度方法的又一种流程示意图;
图5是本申请实施例一可选实施方式中资源调度装置的一种结构示意图;
图6是本申请实施例一可选实施方式中计算机设备的一种结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请提供了一种资源调度方法、装置及计算机设备,可以适用于但不限于分布式集群计算平台中,如Spark计算平台等,具体用于在保证缓存(或持久化)数据完整的情况下,对计算平台中的计算资源进行动态管理,以缓解Spark等计算平台中计算性能与资源占用相矛盾的问题。以下将通过多个实施例对本申请的资源调度方法、装置及计算机设备进行详细说明。
在本申请实施例的一可选实施方式中,提供了一种资源调度方法,以下首先以Spark计算平台这一分布式集群计算平台为例,对本申请方法的应用场景进行介绍。其中,Spark等分布式集群计算平台,如图1所示,通常包括一个主节点服务器及多个从节点服务器,在主节点服务器上运行有集群的资源管理器以及Spark master(可理解为Spark主节点),该资源管理器用于负责对集群各个从节点中的CPU、内存等资源进行分配/释放/再分配等动态资源管理;Spark master具有服务接口,通过服务接口接收客户端的计算任务,并根据计算任务的资源需求向资源管理器申请资源,进而基于申请到的资源进行计算单元的创建以及基于计算单元的任务处理,其中,所申请到的资源通常为集群从节点中的资源,对于Spark计算平台来说,Spark master会基于分配的从节点资源在相应从节点上创建用于任务处理的计算单元(Spark Executor),集群中各个创建有计算单元的从节点可作为Spark master的Spark slaver(即Spark从节点)。
参阅图2,为本申请实施例的该可选实施方式提供的资源调度方法的一种流程示意图,本实施例中,如图1所述,所述资源调度方法包括:
步骤201、获得待处理的第一任务。
所述待处理的第一任务,即可以是计算平台所接收的来自客户端的计算任务,该计算任务泛指客户端所请求处理的任意类型的任务,可以包括但不限于SQL查询任务、文本处理任务、机器学习任务等等。
以上述的Spark计算平台为例,客户端设备,如客户端的计算机或智能手机等终端设备可基于其实际的任务处理需求,通过Spark计算平台提供的服务接口向Spark计算平台请求处理相应的诸如SQL查询、文本处理、机器学习等计算任务,相对应地,运行于Spark计算平台主节点上的Spark master则可以通过所述服务接口接收到客户端设备所请求处理的计算任务。
步骤202、确定处理所述第一任务所需的计算单元的第一数量。
Spark等计算平台通过创建计算单元(Executor)的方式,来实现对客户端设备所请求处理的计算任务进行处理,由此,在接收到客户端设备所请求处理的第一任务后,需首先确定处理该第一任务所需的计算单元的第一数量。
具体可根据该第一任务的实际任务特征来预判其所需的计算单元的第一数量,举例来说,可以但不限于根据该第一任务对应的待处理数据量及任务类型等特征,预判其所需的计算单元的第一数量,更具体地,比如,基于某一机器学习任务对应的训练样本集的数据量及其任务类型(即机器学习类型),预判该机器学习任务所需的计算单元的数量,或者,基于某一文本处理任务所对应的文本数据量及其任务类型(即文本处理类型),预判该文本处理任务所需的计算单元的数量等。
对于Spark计算平台来说,则具体可由Spark master结合其所接收的第一任务的任务类型、待处理数据量等任务特征,预判第一任务所需的计算单元的第一数量。其中,基于预判方式确定出的该计算单元的第一数量通常会存在一定冗余,以使得该第一数量至少不小于对所述第一任务进行处理所需的计算单元的实际数量,进而有效满足所述第一任务的处理需求。
步骤203、申请第一数量的计算单元所对应的资源。
计算单元对计算任务的处理需要以CPU、内存等集群资源作为支撑,从而,在确定出处理所述第一任务所需的计算单元的第一数量后,需首先申请该第一数量的计算单元对应所需的资源。
在Spark分布式集群计算平台中,Spark master在确定出处理所述第一任务所需的计算单元的第一数量后,可根据预先制定的单个计算单元的正常运行所需依托的资源量(CPU核数、内存空间大小等),将对第一数量的计算单元的需求转换为对CPU核数、内存空间大小等集群资源的需求,进而根据所需要的CPU核数、内存空间大小等集群资源向集群主节点中的资源管理器提出资源申请,相对应地,资源管理器会为其分配所需资源量的CPU核数及内存等集群资源(集群资源不足的情况除外)。
其中,所申请到的资源通常为集群从节点中的资源,且考虑到集群的负载均衡需求,资源管理器一般会将Spark master所需的总资源量均衡地分摊至集群中的多个从节点上,并相应将多个从节点上的CPU内核、内存等资源分配给Spark master(而并非集中式地基于一个从节点进行资源分配)。
步骤204、基于申请到的资源构建第一数量的计算单元。
在获得所分配的诸如CPU内核、内存等资源后,可相应根据所分配的资源构建第一数量的计算单元。
仍以Spark分布式集群计算平台为例,Spark master在获得资源管理器分配的处于多个从节点上的CPU内核、内存等资源后,可在参与分配CPU内核、内存等资源的每个从节点上创建至少一个计算单元,这样,可将处理第一任务时所需的第一数量的计算单元相对均衡地部署在集群的多个从节点上,而并非集中式地部署在集群的一个从节点上,可有效满足集群的负载均衡需求,同时具有更强的容灾能力,不会因某一个节点发生故障而导致整个任务中断。
其中,在每个参与资源分配的服务器节点上所构建的计算单元的数量,可基于该节点实际分配给Spark master的资源量进行确定,各个参与资源分配的从节点上所构建的计算单元的总数量为所述第一数量(当然,集群中资源匮乏无法为第一任务分配足量资源的情况除外)。
步骤205、将所述第一数量的计算单元处理为至少包括静态类型与动态类型两种计算单元。
在基于资源管理器分配的资源构建第一数量的计算单元后,与目前技术直接利用所构建的各个计算单元及其资源、无差别地参与第一任务处理过程中所需的数据计算、数据存储、资源的动态管理(如任务处于空闲状态时释放至少部分计算单元及其资源,任务繁忙再分配资源等)的方式不同,本申请提出了进一步将所构建的各个计算单元处理为至少包括静态与动态两种类型计算单元的技术构思。
其中,静态类型的计算单元,顾名思义,则是一旦创建便静态不变、一直存在,直至计算平台针对第一任务的服务终止时才撤销,其所对应的资源相应地在此过程中也不参与集群的动态资源管理,例如不再参与在后续任务处理过程中当任务处于空闲状态时的资源动态释放、资源的再分配等;而所述动态类型的计算单元,则与所述静态类型的计算单元相对,会参与后续的动态资源管理,在后续任务处理过程中当任务处于空闲状态时能够用于参与资源的动态释放及资源回收后的再分配。
这里,需要说明的是,计算平台所提供的针对该第一任务的服务,可以包括但不限于用于处理该第一任务的服务以及基于处理结果所提供的后续服务,例如对于机器学习这一任务来说,则计算平台针对该任务所提供的服务可以包括:基于训练样本的模型训练服务以及基于所训练的模型提供的后续服务(如模式识别、场景分类等)。
在上述的Spark分布式集群计算平台中,作为一种可能的实施方式,具体可由所述Spark master以打标签的方式,将所述第一数量的计算单元中的一部分计算单元标记为静态类型,而剩余的其它计算单元则标记为动态类型;当然,实际实施本申请时,可仅对某一种类型的计算单元进行标签标记,例如,仅为划分为静态类型的计算单元标记相应标签,而未标记标签的计算单元则默认为属于动态类型,或者仅为划分为动态类型的计算单元标记相应标签,而未标记标签的计算单元则默认为属于静态类型等等,本实施例对此不作限定,只要使得系统能够将静态与动态这两种不同类型的计算单元加以有效区分即可。
步骤206、利用第一数量计算单元中的至少部分计算单元处理所述第一任务。
其中,若所述第一任务需存储待重用的数据,则利用静态类型的计算单元对应的资源进行待重用数据的存储;若所述第一任务进入符合第一条件的空闲状态,则释放至少部分动态类型的计算单元及其对应的资源。
如上文所述,所述计算单元的第一数量为根据所述第一任务的任务特征通过预判方式确定出的数量,其通常至少不小于所述第一任务实际所需的计算单元的数量,因此,在创建所述第一数量的计算单元后,可根据所述第一任务的实际需求,相应利用所述第一数量计算单元中的部分或全部计算单元对所述第一任务进行处理。
本申请中,所述第一数量的计算单元分为静态类型与动态类型两种类型,每种类型的每个计算单元都依托有被分配的CPU、内存等资源,在这些资源的支撑下,可使得每个计算单元得以成功启动并执行相应处理。
在处理第一任务的过程中,对于第一任务中的任务计算需求,可以不加区分地选取静态与动态类型中的任一种或两种计算单元进行任务计算(这里的“计算”泛指数据分析、计算、查询、机器学习、模型训练等各种处理),也即,静态类型与动态类型的计算单元均可以参与任务的计算处理。
对于第一任务中的针对待重用数据的任务存储需求,例如针对某些关键RDD在后续其他动作中的重用需求,需缓存或持久化这些关键RDD等,则有针对性地仅选取静态类型的计算单元进行关键RDD等待重用数据的数据存储处理,其中,具体可以根据指令将需存储的待重用数据缓存或者持久化存储于某一个或多个静态类型计算单元所对应的内存中。当然,对于动态类型计算单元所对应的内存资源,其同样是可以对计算单元在执行计算任务的过程中起到数据缓存作用的,但其所起到的数据缓存作用与所述静态类型计算单元的内存对关键RDD等待重用数据所起到的缓存或持久化存储作用是不同的,动态类型计算单元的内存中所缓存的数据是临时的、不支持在后续其他动作中的重用,会随当前计算动作的结束而释放(当然这些数据通常为非关键RDD数据,不存在重用需求)。
在第一任务处于符合第一条件的空闲状态,从而需释放第一数量的计算单元的相应资源时,则有针对性地仅选取动态类型的计算单元来参与资源的释放,其中,可根据需求释放全部或部分的动态类型计算单元,而随着计算单元的释放,计算单元所对应的CPU内核、内存等资源也同时被释放、回收,这样,集群系统可基于释放、回收的这些资源用作其他处理、进行资源的再分配。
所述第一条件可以是但不限于:第一数量的计算资源中超出第一数量阈值或第一比例阈值的计算单元闲置。从而基于该第一条件,当第一数量的计算单元中超出第一数量阈值或第一比例阈值的计算单元闲置时,表示第一任务处于闲置状态,该情况下,可触发所述资源管理器对所述第一任务进行资源管理,并释放其动态类型计算单元中的部分或全部计算单元。其中,对于待释放的动态类型计算单元闲置的情况,可直接对该闲置的动态类型计算单元进行销毁并释放其对应的资源,而对于待释放的动态类型计算单元未闲置仍在执行相应计算任务的情况,则可延时等待一段时间,直至其当前的计算任务完成时再对该动态类型计算单元及其对应的资源进行释放,或者也可以将其当前的计算任务转移(可基于复制内存现场的方式实现计算任务的转移)至相应闲置的静态类型计算单元,并在完成计算任务的转移后释放该动态类型计算单元及其对应的资源。
由于动态类型的计算单元未缓存或持久化有需重用的关键RDD等数据,从而这些动态类型计算单元及其资源的释放不会导致需重用的关键数据的丢失,而静态类型计算单元由于不参与资源的释放、再分配等动态管理,从而可有效保证已缓存(或持久化)的需重用数据的完整性。
本申请实施例提供的资源调度方法,针对待处理的第一任务,在基于申请到的资源为其构建多个计算单元后,进一步将各计算单元处理为至少包括静态与动态两种类型,之后针对第一任务的数据存储需求,利用静态计算单元对应的资源来存储数据,而针对第一任务空闲时的资源释放需求,则释放掉至少部分动态计算单元及其资源。由此,本申请通过将第一任务的计算单元处理为静态与动态两种不同的类型,并区别化地、有选择性地利用静态计算单元的资源进行数据存储、利用动态计算单元及其资源参与资源释放(而静态计算单元及其资源则不参与资源释放),实现了在保证缓存(或持久化)数据完整的情况下,对计算资源进行动态管理,可有效缓解Spark等计算平台中计算性能与资源占用相矛盾的问题。
在本申请实施例的一可选实施方式中,参阅图3,所述步骤205具体可通过以下的处理过程实现:
步骤2051、按照预先设定的比例,将所述第一数量的计算单元中的第二数量的计算单元标记为静态类型,静态类型除外的其它计算单元标记为动态类型;或者,根据所述第一任务的处理需求,将所述第一数量的计算单元中的第三数量的计算单元标记为静态类型,静态类型除外的其它计算单元标记为动态类型。
其中,作为一种可选的实施方式,可以按照预先设定的固定比例,例如按照预定设定的50%:50%或30%:70%的固定比例等,对所述第一数量的计算单元进行静态类型与动态类型的标签标记处理,并具体将所述第一数量的计算单元中的符合所述预定比例的第二数量的计算单元标记为静态类型,而静态类型除外的其它计算单元则标记为动态类型(当然也可以选择性地仅标记静态或动态类型中的一种,另一种不标记)。
作为另一种可选的实施方式,还可以根据所述第一任务的实际处理需求,对所述第一数量的计算单元进行静态类型与动态类型的标签标记处理,例如,可以但不限于根据所述第一任务的任务类型及数据量等任务特征,预判该第一任务大致所需的静态/动态类型计算单元的数量,进而将所述第一数量的计算单元中满足所述数量需求的第三数量的计算单元标记为静态类型,静态类型除外的其它计算单元标记为动态类型(当然也可以选择性地仅标记静态或动态类型中的一种,另一种不标记)。
具体实施中,考虑到分布式集群计算平台的负载均衡需求,在对第一数量的计算单元进行静态类型与动态类型的标签标记处理时,优选地,可将构建有多个计算单元的每个节点上所构建的各个计算单元有区别地标记为静态与动态两种类型,而并非将构建有多个计算单元的某个节点上的各计算单元均标记为静态或动态中的一种类型,这样可尽可能使得将静态与动态这两种类型的计算单元掺杂分布在每个提供了资源的节点中,在实际的标签标记处理中,可选地,对于每一个构建有多个计算单元的节点,可按照预先设定的动态-静态固定比例,或者按照根据第一任务的实际处理需求实时确定的动态-静态比例,将节点上的多个计算单元标记为相应的静态类型或动态类型。
基于该标记方式,当后续节点上的动态类型计算单元及其资源被释放后,仍能保证第一任务所对应的各个静态类型的计算单元相对均衡地分布在集群的多个不同节点中,而并非集中式地分布在一个节点或数量较少的几个节点中,有效地保证了集群节点的负载均衡,同时也具备较高的容灾能力。
在本申请实施例的一可选实施方式中,参阅图4,所述资源调度方法在所述步骤206中释放动态类型的计算单元及其对应的资源之后,还可以包括以下处理过程:
步骤207、若所述第一任务进入符合第二条件的繁忙状态,则再次进行资源申请及计算单元构建,以辅助已有的计算单元对所述第一任务进行处理。
所述第二条件可以是但不限于:第一数量的计算资源中超出第二数量阈值或第二比例阈值的计算单元繁忙。
当第一数量的计算单元中超出第二数量阈值或第二比例阈值的计算单元繁忙时,举例来说,比如第一数量的计算单元中超出95%的计算单元繁忙时,为避免在接下来的处理中临时出现资源不足进而影响第一任务的正常执行的现象,则可再次进行资源申请及计算单元的构建。
具体地,可由所述Spark master基于当前的任务处理需求,向所述资源管理器再次提出针对所述第一任务的资源申请,资源管理器响应该申请,会为所述第一任务再次分配CPU、内存等资源(资源不足的情况除外),Spark master则会基于再次分配的CPU、内存等资源继续构建相应数量的计算单元,以辅助已有的计算单元对所述第一任务进行处理,避免出现资源不足进而影响第一任务的正常执行的现象。
步骤208、将再次构建的计算单元中的至少部分计算单元标记为动态类型。
实际应用场景中,由于第一任务已占用一定数量的静态类型计算单元,且该静态类型计算单元一旦构建则一直存在(通常仅会在计算平台针对第一任务的服务撤销时才释放),从而在基于新申请的资源再次构建计算单元时,优选地,可仅构建动态类型的计算单元,以便于这部分计算单元及其资源在不需要时可灵活地对其进行释放、再分配处理;在该情况下,针对所构建的各个计算单元则将其相应标记为动态类型。
当然,并不限于此,也可以结合对关键RDD等需重用数据的缓存/持久化存储需求,在重新构建动态类型计算单元时,同时重新构建少量的静态类型计算单元,在该情况下,针对所构建的各个计算单元,则将其中的部分计算单元标记为动态类型,其余的部分则标记为静态类型。
基于本申请实施例的方案,通过将针对第一任务所构建的计算单元区别化地划分为静态与动态两种类型,可使得计算平台在对该第一任务提供服务的过程中,静态地保留一部分计算单元及该部分计算单元对应的资源不参与系统的动态资源管理,如资源释放、资源的再分配等,这为第一任务的需重用的关键RDD等数据提供了持久化的数据存储支持,有效保证了这些数据的完整性,而对于第一任务的参与动态资源管理的计算单元,则有目的性地不向其内存进行关键RDD等需重用数据的缓存或持久化,从而,在保证缓存(或持久化)数据完整的情况下,又同时实现了对计算资源进行动态管理,有效缓解了Spark等计算平台中计算性能与资源占用相矛盾的问题。
对应于上述的资源调度方法,本申请还提供了一种资源调度装置,在本申请实施例的一可选实施方式中,参阅图5示出的资源调度装置的结构示意图,该装置可以包括:
获取单元501,用于获得待处理的第一任务。
所述待处理的第一任务,即可以是计算平台所接收的来自客户端的计算任务,该计算任务泛指客户端所请求处理的任意类型的任务,可以包括但不限于SQL查询任务、文本处理任务、机器学习任务等等。
确定单元502,用于确定处理所述第一任务所需的计算单元的第一数量。
Spark等计算平台通过创建计算单元(Executor)的方式,来实现对客户端设备所请求处理的计算任务进行处理,由此,在接收到客户端设备所请求处理的第一任务后,需首先确定处理该第一任务所需的计算单元的第一数量。
具体可根据该第一任务的实际任务特征来预判其所需的计算单元的第一数量,举例来说,可以但不限于根据该第一任务对应的待处理数据量及任务类型等特征,预判其所需的计算单元的第一数量,更具体地,比如,基于某一机器学习任务对应的训练样本集的数据量及其任务类型(即机器学习类型),预判该机器学习任务所需的计算单元的数量,或者,基于某一文本处理任务所对应的文本数据量及其任务类型(即文本处理类型),预判该文本处理任务所需的计算单元的数量等。
申请单元503,用于申请第一数量的计算单元所对应的资源。
计算单元对计算任务的处理需要以CPU、内存等集群资源作为支撑,从而,在确定出处理所述第一任务所需的计算单元的第一数量后,需首先申请该第一数量的计算单元对应所需的资源。
在Spark分布式集群计算平台中,Spark master在确定出处理所述第一任务所需的计算单元的第一数量后,可根据预先制定的单个计算单元的正常运行所需依托的资源量(CPU核数、内存空间大小等),将对第一数量的计算单元的需求转换为对CPU核数、内存空间大小等集群资源的需求,进而根据所需要的CPU核数、内存空间大小等集群资源向集群主节点中的资源管理器提出资源申请,相对应地,资源管理器会为其分配所需资源量的CPU核数及内存等集群资源(集群资源不足的情况除外)。
构建单元504,用于基于申请到的资源构建第一数量的计算单元。
在获得所分配的诸如CPU内核、内存等资源后,可相应根据所分配的资源构建第一数量的计算单元。
仍以Spark分布式集群计算平台为例,Spark master在获得资源管理器分配的处于多个从节点上的CPU内核、内存等资源后,可在参与分配CPU内核、内存等资源的每个从节点上创建至少一个计算单元,这样,可将处理第一任务时所需的第一数量的计算单元相对均衡地部署在集群的多个从节点上,而并非集中式地部署在集群的一个从节点上,可有效满足集群的负载均衡需求,同时具有更强的容灾能力,不会因某一个节点发生故障而导致整个任务中断。
第一处理单元505,用于将所述第一数量的计算单元处理为至少包括静态类型与动态类型两种计算单元。
在基于资源管理器分配的资源构建第一数量的计算单元后,与目前技术直接利用所构建的各个计算单元及其资源、无差别地参与第一任务处理过程中所需的数据计算、数据存储、资源的动态管理(如任务处于空闲状态时释放至少部分计算单元及其资源,任务繁忙再分配资源等)的方式不同,本申请提出了进一步将所构建的各个计算单元处理为至少包括静态与动态两种类型计算单元的技术构思。
在上述的Spark分布式集群计算平台中,作为一种可能的实施方式,具体可由所述Spark master以打标签的方式,将所述第一数量的计算单元中的一部分计算单元标记为静态类型,而剩余的其它计算单元则标记为动态类型;当然,实际实施本申请时,可仅对某一种类型的计算单元进行标签标记,例如,仅为划分为静态类型的计算单元标记相应标签,而未标记标签的计算单元则默认为属于动态类型,或者仅为划分为动态类型的计算单元标记相应标签,而未标记标签的计算单元则默认为属于静态类型等等,本实施例对此不作限定,只要使得系统能够将静态与动态这两种不同类型的计算单元加以有效区分即可。
第二处理单元506,用于利用第一数量计算单元中的至少部分计算单元处理所述第一任务;
其中,若所述第一任务需存储待重用的数据,则利用静态类型的计算单元对应的资源进行待重用数据的存储;若所述第一任务进入符合第一条件的空闲状态,则释放至少部分动态类型的计算单元及其对应的资源。
在处理第一任务的过程中,对于第一任务中的任务计算需求,可以不加区分地选取静态与动态类型中的任一种或两种计算单元进行任务计算(这里的“计算”泛指数据分析、计算、查询、机器学习、模型训练等各种处理),也即,静态类型与动态类型的计算单元均可以参与任务的计算处理。
对于第一任务中的针对待重用数据的任务存储需求,例如针对某些关键RDD在后续其他动作中的重用需求,需缓存或持久化这些关键RDD等,则有针对性地仅选取静态类型的计算单元进行关键RDD等待重用数据的数据存储处理,其中,具体可以根据指令将需存储的待重用数据缓存或者持久化存储于某一个或多个静态类型计算单元所对应的内存中。当然,对于动态类型计算单元所对应的内存资源,其同样是可以对计算单元在执行计算任务的过程中起到数据缓存作用的,但其所起到的数据缓存作用与所述静态类型计算单元的内存对关键RDD等待重用数据所起到的缓存或持久化存储作用是不同的,动态类型计算单元的内存中所缓存的数据是临时的、不支持在后续其他动作中的重用,会随当前计算动作的结束而释放(当然这些数据通常为非关键RDD数据,不存在重用需求)。
在第一任务处于符合第一条件的空闲状态,从而需释放第一数量的计算单元的相应资源时,则有针对性地仅选取动态类型的计算单元来参与资源的释放,其中,可根据需求释放全部或部分的动态类型计算单元,而随着计算单元的释放,计算单元所对应的CPU内核、内存等资源也同时被释放、回收,这样,集群系统可基于释放、回收的这些资源用作其他处理、进行资源的再分配。
所述第一条件可以是但不限于:第一数量的计算资源中超出第一数量阈值或第一比例阈值的计算单元闲置。
本申请实施例提供的资源调度装置,针对待处理的第一任务,在基于申请到的资源为其构建多个计算单元后,进一步将各计算单元处理为至少包括静态与动态两种类型,之后针对第一任务的数据存储需求,利用静态计算单元对应的资源来存储数据,而针对第一任务空闲时的资源释放需求,则释放掉至少部分动态计算单元及其资源。由此,本申请通过将第一任务的计算单元处理为静态与动态两种不同的类型,并区别化地、有选择性地利用静态计算单元的资源进行数据存储、利用动态计算单元及其资源参与资源释放(而静态计算单元及其资源则不参与资源释放),实现了在保证缓存(或持久化)数据完整的情况下,对计算资源进行动态管理,可有效缓解Spark等计算平台中计算性能与资源占用相矛盾的问题。
在本申请的一可选实施方式中,所述第一处理单元505的功能具体可通过以下的处理过程实现:
按照预先设定的比例,将所述第一数量的计算单元中的第二数量的计算单元标记为静态类型,静态类型除外的其它计算单元标记为动态类型;或者,根据所述第一任务的处理需求,将所述第一数量的计算单元中的第三数量的计算单元标记为静态类型,静态类型除外的其它计算单元标记为动态类型。
其中,作为一种可选的实施方式,可以按照预先设定的固定比例,例如按照预定设定的50%:50%或30%:70%的固定比例等,对所述第一数量的计算单元进行静态类型与动态类型的标签标记处理,并具体将所述第一数量的计算单元中的符合所述预定比例的第二数量的计算单元标记为静态类型,而静态类型除外的其它计算单元则标记为动态类型(当然也可以选择性地仅标记静态或动态类型中的一种,另一种不标记)。
作为另一种可选的实施方式,还可以根据所述第一任务的实际处理需求,对所述第一数量的计算单元进行静态类型与动态类型的标签标记处理,例如,可以但不限于根据所述第一任务的任务类型及数据量等任务特征,预判该第一任务大致所需的静态/动态类型计算单元的数量,进而将所述第一数量的计算单元中满足所述数量需求的第三数量的计算单元标记为静态类型,静态类型除外的其它计算单元标记为动态类型(当然也可以选择性地仅标记静态或动态类型中的一种,另一种不标记)。
具体实施中,考虑到分布式集群计算平台的负载均衡需求,在对第一数量的计算单元进行静态类型与动态类型的标签标记处理时,优选地,可将构建有多个计算单元的每个节点上所构建的各个计算单元有区别地标记为静态与动态两种类型,而并非将构建有多个计算单元的某个节点上的各计算单元均标记为静态或动态中的一种类型,这样可尽可能使得将静态与动态这两种类型的计算单元掺杂分布在每个提供了资源的节点中,在实际的标签标记处理中,可选地,对于每一个构建有多个计算单元的节点,可按照预先设定的动态-静态固定比例,或者按照根据第一任务的实际处理需求实时确定的动态-静态比例,将节点上的多个计算单元标记为相应的静态类型或动态类型。
基于该标记方式,当后续节点上的动态类型计算单元及其资源被释放后,仍能保证第一任务所对应的各个静态类型的计算单元相对均衡地分布在集群的多个不同节点中,而并非集中式地分布在一个节点或数量较少的几个节点中,有效地保证了集群节点的负载均衡,同时也具备较高的容灾能力。
在本申请的一可选实施方式中,在释放动态类型的计算单元及其对应的资源之后,若所述第一任务进入符合第二条件的繁忙状态,则:
所述申请单元503还用于再次申请资源;
所述构建单元504还用于基于再次申请到的资源再次构建计算单元;
所述第一处理单元505还用于将再次构建的计算单元中的至少部分计算单元标记为动态类型。
所述第二条件可以是但不限于:第一数量的计算资源中超出第二数量阈值或第二比例阈值的计算单元繁忙。
当第一数量的计算单元中超出第二数量阈值或第二比例阈值的计算单元繁忙时,举例来说,比如第一数量的计算单元中超出95%的计算单元繁忙时,为避免在接下来的处理中临时出现资源不足进而影响第一任务的正常执行的现象,则可再次进行资源申请及计算单元的构建。
具体地,可由所述Spark master基于当前的任务处理需求,向所述资源管理器再次提出针对所述第一任务的资源申请,资源管理器响应该申请,会为所述第一任务再次分配CPU、内存等资源(资源不足的情况除外),Spark master则会基于再次分配的CPU、内存等资源继续构建相应数量的计算单元,以辅助已有的计算单元对所述第一任务进行处理,避免出现资源不足进而影响第一任务的正常执行的现象。
实际应用场景中,由于第一任务已占用一定数量的静态类型计算单元,且该静态类型计算单元一旦构建则一直存在(通常仅会在计算平台针对第一任务的服务撤销时才释放),从而在基于新申请的资源再次构建计算单元时,优选地,可仅构建动态类型的计算单元,以便于这部分计算单元及其资源在不需要时可灵活地对其进行释放、再分配处理;在该情况下,针对所构建的各个计算单元则将其相应标记为动态类型。
当然,并不限于此,也可以结合对关键RDD等需重用数据的缓存/持久化存储需求,在重新构建动态类型计算单元时,同时重新构建少量的静态类型计算单元,在该情况下,针对所构建的各个计算单元,则将其中的部分计算单元标记为动态类型,其余的部分则标记为静态类型。
基于本申请实施例的方案,通过将针对第一任务所构建的计算单元区别化地划分为静态与动态两种类型,可使得计算平台在对该第一任务提供服务的过程中,静态地保留一部分计算单元及该部分计算单元对应的资源不参与系统的动态资源管理,如资源释放、资源的再分配等,这为第一任务的需重用的关键RDD等数据提供了持久化的数据存储支持,有效保证了这些数据的完整性,而对于第一任务的参与动态资源管理的计算单元,则有目的性地不向其内存进行关键RDD等需重用数据的缓存或持久化,从而,在保证缓存(或持久化)数据完整的情况下,又同时实现了对计算资源进行动态管理,有效缓解了Spark等计算平台中计算性能与资源占用相矛盾的问题。
在本申请实施例的一可选实施方式中,还提供了一种计算机设备,该计算机设备具体可以是但不限于分布式集群计算平台中的服务器,更具体地说,可以是所述Spark计算平台中的作为主节点的服务器,参阅图6示出的计算机设备的结构示意图,该计算机设备可以包括:
存储器601,用于至少存储一组指令集;
处理器602,用于调用并执行所述指令集,通过执行所述指令集执行以上任一实施例所述的资源调度方法。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
为了描述的方便,描述以上系统或装置时以功能分为各种模块或单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
最后,还需要说明的是,在本文中,诸如第一、第二、第三和第四等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种资源调度方法,包括:
获得待处理的第一任务;
确定处理所述第一任务所需的计算单元的第一数量;
申请第一数量的计算单元所对应的资源;
基于申请到的资源构建第一数量的计算单元;
将所述第一数量的计算单元处理为至少包括静态类型与动态类型两种计算单元;
利用第一数量计算单元中的至少部分计算单元处理所述第一任务;
其中,对于所述第一任务中的任务计算需求,所述静态类型的计算单元和动态类型的计算单元均能够参与任务计算处理,若所述第一任务需存储待重用的数据,则利用静态类型的计算单元对应的资源进行待重用数据的存储;若所述第一任务进入符合第一条件的空闲状态,则释放至少部分动态类型的计算单元及其对应的资源。
2.根据权利要求1所述的方法,所述将所述第一数量的计算单元处理为至少包括静态类型与动态类型两种计算单元,包括:
将所述第一数量的计算单元中的一部分计算单元标记为静态类型,静态类型除外的其它计算单元标记为动态类型。
3.根据权利要求2所述的方法,所述将所述第一数量的计算单元中的一部分计算单元标记为静态类型,静态类型除外的其它计算单元标记为动态类型,包括:
按照预先设定的比例,将所述第一数量的计算单元中的第二数量的计算单元标记为静态类型,静态类型除外的其它计算单元标记为动态类型;
或者,
根据所述第一任务的处理需求,将所述第一数量的计算单元中的第三数量的计算单元标记为静态类型,静态类型除外的其它计算单元标记为动态类型。
4.根据权利要求1所述的方法,所述申请到的资源包括分布式集群的多个节点中的资源;
所述基于申请到的资源构建第一数量的计算单元,包括:
在申请到的资源所处的每个节点中构建计算单元;
所述将所述第一数量的计算单元处理为至少包括静态类型与动态类型两种计算单元,包括:
将构建有多个计算单元的每个节点上构建的计算单元处理为静态类型与动态类型两种计算单元。
5.根据权利要求1所述的方法,该方法在释放动态类型的计算单元及其对应的资源之后,还包括:
若所述第一任务进入符合第二条件的繁忙状态,则再次进行资源申请及计算单元构建,以辅助已有的计算单元对所述第一任务进行处理;
将再次构建的计算单元中的至少部分计算单元标记为动态类型。
6.一种资源调度装置,包括:
获取单元,用于获得待处理的第一任务;
确定单元,用于确定处理所述第一任务所需的计算单元的第一数量;
申请单元,用于申请第一数量的计算单元所对应的资源;
构建单元,用于基于申请到的资源构建第一数量的计算单元;
第一处理单元,用于将所述第一数量的计算单元处理为至少包括静态类型与动态类型两种计算单元;
第二处理单元,用于利用第一数量计算单元中的至少部分计算单元处理所述第一任务;
其中,对于所述第一任务中的任务计算需求,所述静态类型的计算单元和动态类型的计算单元均能够参与任务计算处理,若所述第一任务需存储待重用的数据,则利用静态类型的计算单元对应的资源进行待重用数据的存储;若所述第一任务进入符合第一条件的空闲状态,则释放至少部分动态类型的计算单元及其对应的资源。
7.根据权利要求6所述的装置,所述第一处理单元,具体用于:
将所述第一数量的计算单元中的一部分计算单元标记为静态类型,静态类型除外的其它计算单元标记为动态类型。
8.根据权利要求7所述的装置,所述第一处理单元将所述第一数量的计算单元中的一部分计算单元标记为静态类型,静态类型除外的其它计算单元标记为动态类型,具体包括:
按照预先设定的比例,将所述第一数量的计算单元中的第二数量的计算单元标记为静态类型,静态类型除外的其它计算单元标记为动态类型;
或者,
根据所述第一任务的处理需求,将所述第一数量的计算单元中的第三数量的计算单元标记为静态类型,静态类型除外的其它计算单元标记为动态类型。
9.根据权利要求6所述的装置,在释放动态类型的计算单元及其对应的资源之后,若所述第一任务进入符合第二条件的繁忙状态,则:
所述申请单元还用于再次申请资源;
所述构建单元还用于基于再次申请到的资源再次构建计算单元;
所述第一处理单元还用于将再次构建的计算单元中的至少部分计算单元标记为动态类型。
10.一种计算机设备,包括:
存储器,用于至少存储一组指令集;
处理器,用于调用并执行所述指令集,通过执行所述指令集执行如权利要求1-5任一项所述的资源调度方法。
CN201910711579.5A 2019-08-02 2019-08-02 一种资源调度方法、装置及计算机设备 Active CN110442454B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910711579.5A CN110442454B (zh) 2019-08-02 2019-08-02 一种资源调度方法、装置及计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910711579.5A CN110442454B (zh) 2019-08-02 2019-08-02 一种资源调度方法、装置及计算机设备

Publications (2)

Publication Number Publication Date
CN110442454A CN110442454A (zh) 2019-11-12
CN110442454B true CN110442454B (zh) 2022-06-24

Family

ID=68433014

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910711579.5A Active CN110442454B (zh) 2019-08-02 2019-08-02 一种资源调度方法、装置及计算机设备

Country Status (1)

Country Link
CN (1) CN110442454B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110688993B (zh) * 2019-12-10 2020-04-17 中国人民解放军国防科技大学 一种基于Spark作业的计算资源确定方法及装置
CN111679909B (zh) * 2020-05-19 2024-02-23 深圳市元征科技股份有限公司 数据处理方法、装置及终端设备
CN116650946A (zh) * 2022-02-18 2023-08-29 腾讯科技(深圳)有限公司 虚拟场景的数据处理方法、装置、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101883103A (zh) * 2009-04-15 2010-11-10 埃森哲环球服务有限公司 云数据中心内Web服务器群架构的客户端侧扩展的方法和系统
CN102779181A (zh) * 2012-06-29 2012-11-14 广州市动景计算机科技有限公司 基于html5的浏览器离线存储数据处理方法及浏览器
CN109684078A (zh) * 2018-12-05 2019-04-26 苏州思必驰信息科技有限公司 用于spark streaming的资源动态分配方法和系统
CN109800092A (zh) * 2018-12-17 2019-05-24 华为技术有限公司 一种共享数据的处理方法、装置及服务器

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10204175B2 (en) * 2016-05-18 2019-02-12 International Business Machines Corporation Dynamic memory tuning for in-memory data analytic platforms
US10977260B2 (en) * 2016-09-26 2021-04-13 Splunk Inc. Task distribution in an execution node of a distributed execution environment

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101883103A (zh) * 2009-04-15 2010-11-10 埃森哲环球服务有限公司 云数据中心内Web服务器群架构的客户端侧扩展的方法和系统
CN102779181A (zh) * 2012-06-29 2012-11-14 广州市动景计算机科技有限公司 基于html5的浏览器离线存储数据处理方法及浏览器
CN109684078A (zh) * 2018-12-05 2019-04-26 苏州思必驰信息科技有限公司 用于spark streaming的资源动态分配方法和系统
CN109800092A (zh) * 2018-12-17 2019-05-24 华为技术有限公司 一种共享数据的处理方法、装置及服务器

Also Published As

Publication number Publication date
CN110442454A (zh) 2019-11-12

Similar Documents

Publication Publication Date Title
CN110442454B (zh) 一种资源调度方法、装置及计算机设备
US7349970B2 (en) Workload management of stateful program entities
US8631403B2 (en) Method and system for managing tasks by dynamically scaling centralized virtual center in virtual infrastructure
CN109034396B (zh) 用于处理分布式集群中的深度学习作业的方法和装置
JP5088234B2 (ja) メッセージ紐付け処理装置、方法及びプログラム
US10033816B2 (en) Workflow service using state transfer
CN101146127B (zh) 一种分布式系统中客户端缓存更新的方法和装置
US20190034095A1 (en) Reclaiming memory pages
CN103067425A (zh) 虚拟机创建方法、虚拟机管理系统及相关设备
JP2007503628A5 (zh)
CN101799773A (zh) 并行计算的内存访问方法
US10437645B2 (en) Scheduling of micro-service instances
CN111158888A (zh) 多任务调度方法和装置
CN110958311A (zh) 一种基于yarn的共享集群弹性伸缩系统及方法
CN112445615A (zh) 一种线程的调度系统、计算机设备和存储介质
CN112905334A (zh) 资源管理方法、装置、电子设备和存储介质
KR101765725B1 (ko) 대용량 방송용 빅데이터 분산 병렬처리를 위한 동적 디바이스 연결 시스템 및 방법
US20200133728A1 (en) Data based scheduling for horizontally scalable clusters
CN106533961A (zh) 一种流量控制方法及装置
US20210149703A1 (en) Numa-aware resource allocation and placement of database containers
CN108153859A (zh) 一种基于Hadoop与Spark的效用次序并行确定方法
CN105260244A (zh) 一种分布式系统任务调度的方法和装置
US8001341B2 (en) Managing dynamically allocated memory in a computer system
CN114579323A (zh) 一种线程处理方法、装置、设备及介质
CN110134533B (zh) 一种可批量调度数据的系统及方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant