CN109684092A - 资源分配方法及装置 - Google Patents

资源分配方法及装置 Download PDF

Info

Publication number
CN109684092A
CN109684092A CN201811584199.1A CN201811584199A CN109684092A CN 109684092 A CN109684092 A CN 109684092A CN 201811584199 A CN201811584199 A CN 201811584199A CN 109684092 A CN109684092 A CN 109684092A
Authority
CN
China
Prior art keywords
queue
resource allocation
resource
rule
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.)
Granted
Application number
CN201811584199.1A
Other languages
English (en)
Other versions
CN109684092B (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.)
New H3C Big Data Technologies Co Ltd
Original Assignee
New H3C Big Data 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 New H3C Big Data Technologies Co Ltd filed Critical New H3C Big Data Technologies Co Ltd
Priority to CN201811584199.1A priority Critical patent/CN109684092B/zh
Publication of CN109684092A publication Critical patent/CN109684092A/zh
Application granted granted Critical
Publication of CN109684092B publication Critical patent/CN109684092B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请实施例提供一种资源分配方法及装置,YARN中的资源管理器在获得目标用户的资源分配任务时,依次访问预设的至少一个队列分配规则。若访问的队列分配规则中包括目标用户的身份信息,则从该队列分配规则关联的队列分配策略中查找目标队列。将资源分配任务添加到目标队列中,以按照针对目标队列预设的资源分配策略执行资源分配任务。如此,可以方便快捷地将用户的资源分配任务添加到该用户绑定的队列中,使得业务配置更为灵活。

Description

资源分配方法及装置
技术领域
本申请涉及大数据技术领域,具体而言,涉及一种资源分配方法及装置。
背景技术
另一种资源协调者(YetAnotherResourceNegotiator,YARN)是分布式计算基础框架Hadoop提供的一种资源管理系统,可以从下层的分布式存储系统中分配和调度资源来运行上层应用程序。在YARN的资源管理器(ResourceManager)中,创建有队列,并针对所创建的队列配置有资源权重以及能够分配的最大资源量和最小资源量等。其中,资源权重是指该队列分配的资源量占分布式存储系统的总资源量的比重。
对于需要运行的应用程序,资源管理器可以接收针对该应用程序的资源分配请求,并在接收到该资源分配请求时,将该资源分配请求初始化为资源分配任务(task),再添加到特定队列中,使得后续过程中按照该特定队列的配置来执行该资源分配任务。
然而,相关技术中,为资源分配任务选择特定队列的方式非常有限,使得业务配置不够灵活。
发明内容
有鉴于此,本申请的目的之一在于提供一种资源分配方法及装置,以至少部分地改善上述问题。
为了达到上述目的,本申请实施例采用如下技术方案:
第一方面,本申请实施例提供一种资源分配方法,应用于YARN中的资源管理器,所述方法包括:
在获得目标用户的资源分配任务时,依次访问预设的至少一个队列分配规则;
若访问的队列分配规则中包括所述目标用户的身份信息,则从所述队列分配规则关联的队列分配策略中查找目标队列;
将所述资源分配任务添加到所述目标队列中,以按照针对所述目标队列预设的资源分配策略执行所述资源分配任务。
第二方面,本申请实施例提供一种资源分配装置,应用于YARN中的资源管理器,所述装置包括:
规则访问模块,用于在获得目标用户的资源分配任务时,依次访问预设的至少一个队列分配规则;
查找模块,用于在访问的队列分配规则包括所述目标用户的身份信息的情况下,从所述队列分配规则关联的队列分配策略中查找所述目标队列;
任务分配模块,用于将所述资源分配任务添加到所述目标队列中,以按照针对所述目标队列预设的资源分配策略执行所述资源分配任务。
第三方面,本申请实施例还提供一种服务器,包括处理器及机器可读存储介质,所述机器可读存储介质上存储有机器可执行指令,该机器可读执行指令被执行时,促使所述处理器实现本申请实施例提供的资源分配方法。
第四方面,本申请实施例提供一种机器可读存储介质,其上存储有机器可执行指令,该机器可执行指令被执行时,实现本申请实施例提供的资源分配方法。
相对于现有技术而言,本申请具有的有益效果包括:
本申请实施例提供的一种资源分配方法及装置,YARN的资源管理器在获得目标用户的资源分配任务时,依次访问预设的至少一个队列分配规则。若访问的队列分配规则中包括目标用户的身份信息,则在该队列分配规则关联的队列分配策略中查找目标队列;将资源分配任务添加到目标队列中,以按照针对目标队列预设的资源分配策略执行资源分配任务。如此,可以实现将用户的资源分配任务添加到该用户绑定的队列中,使得业务配置更为灵活。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的YARN在一种示例中的应用场景示意图;
图2为本申请实施例提供的一种资源分配方法的流程示意图;
图3为为本申请实施例提供的一种服务器的框图;
图4为本申请实施例提供的一种资源分配装置的功能模块框图。
图标:10-服务器;11-处理器;12-机器可读存储介质;13-系统总线;100-YARN;110-资源管理器;111-调度器;112-应用程序管理器;120-应用程序主控器;131、132、133-节点管理器;140-YarnChild进程;200-客户端;300-资源管理装置;310-规则访问模块;320-查找模块;330-分配模块。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
YARN可以从分布式存储系统中分配资源来运行应用程序(Application或Program),根据所使用的计算框架的不同,所运行的应用程序不同。其中,可以使用YARN来进行资源分配和调度的计算框架例如可以为MapReduce、Spark、Hive、流式计算等,所述分布式存储系统例如可以是HDFS(HadoopDistributedFileSystem,Hadoop分布式文件系统),本申请实施例对此不做限制。
请参照图1,图1是YARN 100在一种示例中的应用场景示意图。
YARN 100包括资源管理器110、节点管理器(NodeManager)和应用程序主控器(ApplicationMaster)120。分布式存储系统中可以包括多个物理节点(例如服务器、主机等),节点管理器为运行在物理节点上的进程,用于对该物理节点上的资源使用量、运行的任务等进行管控。例如,图1中示出的节点管理器131、节点管理器132和节点管理器133分别运行在不同的物理节点上。资源管理器110用于对整个系统的资源进行调度和分配,其中,资源管理器110通常可以包括调度器111(Scheduler)和应用程序管理器112(ApplicationsManager),调度器111用于按照特定的规则分配运行应用程序的资源,应用程序管理器112用于对系统中运行的各个应用程序进行管控。
现假设存在需要运行的应用程序x,以下将对YARN 100分配资源来运行应用程序x的示例性过程进行描述:
1、针对用户提交的应用程序(Application或Program)x,客户端(client)200向YARN发送程序提交请求,以申请提交应用程序x。
2、资源管理器110的应用程序管理器112接收所述程序提交请求,并返回提交路径和应用程序标识(ApplicationID或JobID)。其中,所述提交路径为分布式存储系统中的地址。
3、客户端200将封装好的应用程序x提交到分布式存储系统的所述提交路径上以所述应用程序标识命名的文件夹中。其中,封装好的应用程序x包括应用程序x的运行环境所需的配置信息以及对应用程序x进行划分得到的多个输入分片信息(splits)等。
4、客户端200在提交封装好的应用程序x之后,向YARN 100发送资源分配请求q1,该资源分配请求q1中可以包括应用程序x的应用程序标识。
5、应用程序管理器112接收该资源分配请求q1,并将该资源分配请求q1初始化为资源分配任务(task),再和调度器111协商,以使调度器111按照预设规则为该资源分配任务确定一队列queue1。
6、应用程序管理器112将该资源分配任务添加到调度器111确定的队列queue1中。
其中,资源管理器110中针对每一队列设置有相应的资源权重、最大资源量和最小资源量等。资源权重是指该队列占用的资源量在系统的总资源量中所占的比重。
7、调度器111按照队列queue1的资源权重、最大资源量和最小资源量来执行上述资源分配任务,也即:使得分配的用于运行应用程序x的资源符合队列queue1的资源权重、最大资源量和最小资源量。
其中,所述资源包括CPU(CentralProcessingUnit,中央处理器)资源、内存资源、磁盘资源以及网络资源等。在本实施例中,调度器111可以根据资源分配任务所需的资源量以及该资源分配任务所属的队列,确定一目标资源量;将特定物理节点上的该目标资源量的CPU资源、内存资源、磁盘资源、网络资源等抽象成一个Container(容器),由应用程序管理器112将该Container分配给该资源分配任务中指示的应用程序,即上述的应用程序x。
8、所述特定物理节点可以在所述Container中启动一应用程序主控器120,应用程序主控器120用于对应用程序x的运行情况进行管控。
9、应用程序主控器120从分布式存储系统中获取封装好的应用程序x,针对其中包括每个输入分片信息,创建对应的运行任务,并向资源管理器110中的应用程序管理器112发送与所创建的运行任务对应的资源分配请求q2。
其中,步骤9中的运行任务根据应用程序x的类型确定,例如可以为map任务、task任务、spark任务等。
此后,通过重复上述的步骤5-7,可以为所创建的运行任务分配相应的资源。
在本实施例中,调度器111例如可以是公平调度器(FairScheduler)。公平调度器可以按照各个队列的资源权重将整个系统的资源来执行各个队列中的资源分配任务。
例如,假设存在队列A和队列B,其中,队列A和队列B的资源权重均为整个系统资源量的一半。队列A中包括已经执行的资源分配任务A1,队列B中包括已经执行的资源分配任务B1。在此值得说明的是,执行资源分配任务是指:分配资源给资源分配任务中指示的应用程序。则,资源分配任务A1中指示的应用程序a1以及资源分配任务B1中指示的应用程序b1各占用整个系统的资源量的一半。
如果一段时间后,队列A中包括已经执行的资源分配任务A2,则资源分配任务A1中指示的应用程序a1以及资源分配任务A2中指示的应用程序a2共享队列A所占用的资源量,也即应用程序a1和应用程序a2各占整个系统的资源量的四分之一;资源分配任务B1中指示的应用程序b1仍然占用整个系统的资源量的一半。
当然,所述调度器111还可以是其他类型的调度器,例如FIFO(FirstInputFirstOutput,先进先出)调度器、CapacityScheduler(容量调度器)等。在实施时,通常可以在YARN的配置文件(例如,conf/yarn-site.xml)中设置所使用的调度器类型。
在支持多个队列的调度器如公平调度器中,通常提供有队列分配规则,所述队列分配规则用于为用户的资源分配任务选择队列,并将该资源分配任务添加到所选的队列中。但是,相关技术中提供的队列分配规则非常有限,不适用于一些特定场景。针对此问题,本申请实施例提供一种资源分配方法及装置,下面对该内容进行描述。
如图2所示,是本申请实施例提供的一种资源分配方法的流程示意图,可以应用于图1所示的资源管理器110。下面对该方法包括的各个步骤进行详述。
步骤S21,在获得目标用户的资源分配任务时,依次访问预设的至少一个队列分配规则。
在本实施例中,目标用户的资源分配任务可以是:资源管理器110中的应用程序管理器112根据目标用户的资源分配请求初始化得到的任务。所述资源分配请求用于请求运行关联的应用程序所需的资源。所述资源分配请求中可以包括所述目标用户的用户标识、所述关联的应用程序的应用程序标识以及所需分配的资源等信息。对应地,所述目标用户的用户标识、所述关联的应用程序的应用程序标识以及所需分配的资源等信息也包含在所述资源分配任务中。
所述关联的应用程序可以是MapReduce程序、Spark程序、Hive程序、流式计算程序等中的任意一种,本实施例对此不做限制。
在本实施例中,支持多个队列的调度器通常具有用于配置队列分配规则的配置文件,可以在该配置文件中配置所需的队列规则。以资源管理器110中的调度器111是公平调度器为例,其包括一配置文件queuePlacementPolicy,可以在queuePlacementPolicy中配置至少一个队列分配规则。当资源管理器110中的应用程序管理器112获得资源分配任务时,可以通知调度器111,使得调度器111依次访问queuePlacementQueue中设置的队列分配规则,直至通过任一队列分配规则确定可添加所述资源分配任务的目标队列为止。
步骤S22,若访问的队列分配规则包括所述目标用户的身份信息,则从所述队列分配规则关联的队列分配策略中查找目标队列。
在实施时,可以在调度器111中增设一队列分配规则,用于按照提交资源分配任务所对应的资源分配请求的用户的身份信息来匹配资源分配任务。在实际应用中,通常根据所访问的队列分配规则的名称来识别其类型,进而确定后续的执行逻辑。因此,可以为所述增设的队列分配规则设置一能够区别与已有的队列分配规则的名称。如此,若访问的队列分配规则具有该特定名称,则判断所述访问的队列分配规则中是否包括所述目标用户的身份信息。
可选地,所述目标用户的身份信息可以是目标用户的用户标识(例如,用户名称)或目标用户所属的用户组的组标识(例如,用户组名称)。其中,一个用户组可以为一个租户,一个租户可以包括多个用户。
基于此,对于需要按照用户标识来匹配资源分配任务的队列分配规则(后称“第一预设规则”),以及需要按照租户标识来匹配资源分配任务的队列分配规则(后称“第二预设规则”),可以分别设置不同的规则名称。例如,可以将第一预设规则的名称设置成“userToQueue”,可以将第二预设规则的名称设置成“groupToQueue”。如此,当检测到访问的队列分配规则的名称为“userToQueue”时,即可判断该队列分配规则中是否包括目标用户的用户标识;当检测到访问的队列分配规则的名称为“groupToQueue”时,即可判断该队列分配规则中是否包括目标用户所属的用户组的组标识。
所述队列分配策略中设置有与目标用户或目标用户所属的用户组对应的至少一个队列,在确定所述访问的队列分配规则与所述资源分配任务匹配时,则从所述至少一个队列中查找目标队列。
可选地,在本实施例中,一条所述队列分配规则可以关联有多条队列分配策略,在此情况下,所述多条队列分配策略与目标用户的身份信息具有一一对应的关系。对应地,在确定访问的队列分配规则与获得的资源分配任务匹配时,资源管理器110中的调度器111可以从所述问的队列分配规则所关联的队列分配策略中确定与目标用户的身份信息对应的队列分配策略,并从所确定的队列分配策略中查找所述目标队列。
步骤S23,将所述资源分配任务添加到所述目标队列中,以按照针对所述目标队列预设的资源分配策略执行所述资源分配任务。
其中,针对所述目标队列预设的资源分配策略是指所述目标队列的资源权重、最大资源量及最小资源量等。
经研究,在相关技术中,公平调度器提供的队列分配规则只支持将目标用户的资源分配任务添加到以目标用户的名称命名的队列中,如果要将目标用户的资源分配任务添加到和目标用户绑定的任意队列中,则只能在提交每一资源分配请求时,指定将该资源分配请求对应的资源分配任务添加到哪一个队列中,操作起来非常繁琐不便。
通过上述设计,只需在配置文件中配置目标用户的用户标识和所绑定的队列的映射关系,即可实现将目标用户的资源分配任务添加到所绑定的队列中,非常方便。
此外,相关技术中目前只支持将属于同一用户组的用户的资源分配任务添加到同一队列中,而通过上述设计,可以根据业务需要将分属不同用户组的多个用户绑定到同一目标队列,使得业务配置更为灵活。对于和同一目标队列绑定的多个用户,一方面,由于每一队列具有相应的资源权重,因而可以避免没有和目标队列绑定的其他用户的应用程序抢占资源。另一方面,由于公平调度器对于同一队列中的各个资源分配任务通常是资源均分,因而可以避免和目标队列绑定的多个用户的应用程序发生资源抢占。
应当理解,本实施例提供的资源分配方法在资源管理器110中的调度器111为其他支持多个队列的调度器(例如,容量调度器)的情况下,仍然适用。
在本实施例中,所述队列分配规则关联的队列分配策略可以有多种类型。
在一种可能的实现方式中,所述队列分配策略可以记录有指定队列,表示该指定队列和目标用户或目标用户所属的用户组绑定。在此情况下,步骤S22可以通过以下步骤实现:
将所述指定队列作为所述目标队列。
在又一种可能的实现方式中,所述队列分配策略中可以记录有服务类型和队列的映射关系。其中,所述队列分配策略包括的各映射关系中记录的队列均为与目标用户或目标用户所属的用户组绑定的队列。在此情况下,步骤S22可以通过以下步骤实现:
根据所述资源分配任务关联的应用程序的服务类型确定匹配的所述映射关系,将匹配的所述映射关系中记录的队列作为所述目标队列。
在实施时,针对所述资源分配任务关联的应用程序的服务类型,可以从所述队列分配策略记录的各映射关系中查找包括该服务类型的映射关系,再将查找到的映射关系中记录的队列作为所述目标队列。
其中,所述服务类型可以包括MapReduce类型、Spark类型、Hive类型、流式计算类型等。
通过上述设计,可以将同一用户的、用于为不同服务类型的应用程序分配资源的资源分配任务添加到不同队列中。考虑到不同服务类型的应用程序需要占用的资源量通常有区别,可以根据各个队列对应的服务类型设置该队列的资源分配策略(即,资源权重、最大资源量及最小资源量等),使得分配给某一用户的某一服务类型的应用程序的资源量与该服务类型的应用程序实际所需的资源量更为匹配,换言之,使得资源分配更为合理。
可选地,在一种实施方式中,服务类型和队列之间可以是一一对应的关系,即:所述队列分配策略中的一条映射关系中记录有一个服务类型和一个队列。在又一种实施方式中,服务类型和队列之间可以是一对多的对应关系,即:所述队列分配策略中得到一条映射关系中记录有一个服务类型和多个队列。
基于此,上述的将匹配的所述映射关系中记录的队列作为所述目标队列的步骤可以包括以下子步骤:
第一、若匹配的所述映射关系中记录有多个队列,则基于预设的选取策略从该多个队列中选择一个作为所述目标队列。
在本实施例中,所述预设的选取策略可以有多种,本实施例不以此为限制。例如,可以采用随机的方式从该多个队列中选择一个作为所述目标队列。又如,可以从该多个队列中选择当前包括的资源分配任务数量最少的一个队列作为所述目标队列。又如,可以为该多个队列分别设置一个哈希值,在实施时,可以基于获得的资源分配任务的特定信息做哈希,并将该多个队列中哈希值与得到的哈希值相同的队列作为所述目标队列。
如此,可以使得分配给同一用户的同一服务类型的各应用程序的资源更为均衡。
第二、若匹配的所述映射关系中记录有一个队列,则将该队列作为所述目标队列。
在本实施例中,可能存在如下情形:资源管理器110中并未创建所述目标队列。针对这种情形,资源管理器提供有针对队列分配规则的一个配置项,用于配置是否允许新建队列。
在此情况下,在步骤S23之前,所述资源分配方法还可以包括以下步骤:
查找所述资源管理器110中是否存在所述目标队列;若存在所述目标队列,则执行步骤S23;若不存在所述目标队列,则判断所述当前访问的队列分配规则是否允许新建队列;若允许新建队列,则新建一个队列作为所述目标队列;若不允许新建队列,则访问下一队列分配规则。其中,所述下一队列分配规则是指:设置在所述当前访问的队列分配规则之后的队列分配规则。
下面结合一个示例中配置的队列分配规则,对上述方案进行描述。在该示例中,资源管理器110的queuePlacementPolicy中依次配置有三条队列分配规则。
规则1:
规则1的名称为userToQueue,规则1不允许新建队列;
针对规则1设置有两条队列分配策略。其中,第一条队列分配策略与用户user1对应,其中记录了队列queue1,队列queue1可以充当本实施例中的指定队列;第二条队列分配策略与用户user2对应,其中记录了队列sparkQueue1和服务类型Spark的映射关系以及队列mapreduceQueue1和服务类型MapReduce的映射关系。
规则2:
规则2的名称为groupToqueue,规则2允许新建队列;
针对规则2设置有两条队列分配策略,其中,第一条队列分配策略和用户组group1对应,其中记录了队列queue3,队列queue3可以充当本实施例中的指定队列;第二条队列分配策略和用户组group2对应,其中记录了队列sparkQueue2与服务类型Spark的映射关系以及队列mapreduceQueue2与服务类型MapReduce的映射关系。
规则3:规则名称为default。
在资源管理器110中记录有用户user1属于用户组group2。
在上述情况下,假设资源管理器110当前获得一资源分配任务task1,资源分配任务task1中包括用户标识user1、应用程序标识x1以及应用程序x1的服务类型MapReduce。则,用户user1可以充当本实施例中的目标用户,“user1”和“group2”可以充当本实施例中描述的目标用户的身份信息。本实施例提供的资源分配方法可以包括以下流程:
第一,资源管理器110在获得资源分配任务task1时,访问上述的规则1,确定规则1的名称为“userToQueue”,故判断规则1中是否包括用户标识“user1”。
第二,资源管理器110确定规则1中包括用户标识“user1”,由于规则1关联有2条队列分配策略,故从该2条队列分配策略中确定与用户标识“user1”对应的队列分配策略,所确定的队列分配策略中仅记录有一个队列queue1,故资源管理器110将队列queue1确定为目标队列。假设资源管理器110通过查找确定不存在队列queue1,则进一步判断规则1是否允许新建队列。
第三,资源管理器110确定规则1不允许新建队列,则访问规则2。
第四,资源管理器110确定规则2的名称为“groupToQueue”,故判断规则2中是否包括用户user1所属的用户组的组标识“group2”。
第五,资源管理器110确定规则2中包括组标识“group2”,由于规则2关联有2条队列分配策略,故从该2条队列分配策略中确定与组标识“group2”对应的队列分配策略。
第六、所确定的队列分配策略中记录有服务类型Spark和队列sparkQueue2的映射关系以及服务类型MapReduce和队列MapReduceQueue2的映射关系。则资源管理器110从资源分配任务task1中获取应用程序x1的服务类型MapReduce,从而确定与该服务类型MapReduce对应的队列为mapreduceQueue2,故将mapreduceQueue2确定为目标队列。
第七、如果资源管理器110通过查找确定存在队列mapreduceQueue2,则可以将资源分配任务task1添加到队列mapreduceQueue2中,从而按照队列mapreduceQueue2的资源分配策略来执行资源分配任务task1。
如果不存在队列mapreduceQueue2,则通过进一步判断确定规则2允许新建队列,则新建一队列,并以“mapreduceQueue2”命名。新建的队列即为目标队列,并将资源分配任务task1添加到新建的队列中。
在此值得说明的是,如果规则2不允许新建队列,则可以继续访问规则3,从而将资源分配任务task1添加到资源管理器110自动创建的default队列中。
在本实施例中,YARN 100可以运行在服务器上,该服务器可以是独立于分布式存储系统的服务器,也可以是分布式存储系统中的服务器。如图3所示,是本实施例提供的一种服务器10的方框示意图。该服务器10可以包括处理器11和机器可读存储介质12,处理器11和机器可读存储介质12可经由系统总线13通信。并且,机器可读存储介质12存储有机器可执行指令,通过读取并执行机器可读存储介质12中与资源分配逻辑对应的机器可执行指令,处理器11可以执行上文描述的资源分配方法。
本文中提到的机器可读存储介质12可以是任何电子、磁性、光学或其他物理存储装置,可以包含存储信息,如可执行指令、数据等。例如,机器可读存储介质12可以是:RAM(RandomAccessMemory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、DVD等),或者类似的存储介质,或者它们的组合。
请参照图4,本实施例还提供一种资源分配装置300,资源分配装置300包括至少一个可以软件形式存储于机器可读存储介质12中的功能模块。从功能上划分,资源分配装置300可以包括规则访问模块310、查找模块320以及分配模块330。
所述规则访问模块310用于在获得目标用户的资源分配任务时,依次访问预设的至少一个队列分配规则。
在本实施例中,所述规则访问模块310可以执行上述的步骤S21,关于所述规则访问模块310的描述可以参考对步骤S21的详细描述。
所述查找模块320用于在访问的队列分配规则中包括所述目标用户的身份信息的情况下,从所述队列分配规则关联的队列分配策略中查找目标队列。
在本实施例中,所述查找模块320可以执行上述的步骤S22,关于所述查找模块320的描述可以参考对步骤S22的详细描述。
所述分配模块330用于将所述资源分配任务添加到所述目标队列中,以按照针对所述目标队列预设的资源分配策略执行所述资源分配任务。
在本实施例中,所述分配模块330可以执行上述步骤S23,关于所述分配模块330的描述可以参考对步骤S23的详细描述。
可选地,所述队列分配策略中可以包括指定队列。在此情况下,所述查找模块320具体可以用于将所述指定队列作为所述目标队列。
可选地,所述队列分配策略中可以包括应用程序的服务类型和队列的映射关系。在此情况下,所述查找模块320具体可以用于根据所述资源分配任务关联的应用程序的服务类型确定匹配的所述映射关系,将匹配的所述映射关系中记录的队列作为所述目标队列。
可选地,所述查找模块320可以通过以下方式将匹配的所述映射关系中记录的队列作为所述目标队列:
若匹配的所述映射关系中记录有多个队列,则基于预设的选取策略从该多个队列中选择一个作为所述目标队列;
若匹配的所述映射关系中记录有一个队列,则将该队列作为所述目标队列。
可选地,所述查找模块320还可以用于在将所述资源分配任务添加到所述目标队列中之前,查找所述资源管理器110中是否存在所述目标队列;若所述资源管理器110中不存在所述目标队列,则判断所述当前访问的队列分配规则是否允许新建队列;若所述当前访问的队列分配规则允许新建队列,则新建一个队列作为所述目标队列。
所述查找模块320还可以用于在所述当前访问的队列分配规则不允许新建队列的情况下,访问下一队列分配规则。
本申请实施例还提供一种机器可读存储介质,其上存储有机器可执行指令,该机器可执行指令被执行时可以实现本申请实施例提供的资源分配方法。
综上所述,本申请实施例提供一种资源分配方法及装置,资源管理器在获得目标用户的资源分配任务时,依次访问预设的至少一个队列分配规则。若访问的队列分配规则中包括目标用户的身份信息,则从该队列分配规则关联的队列分配策略中查找目标队列;将资源分配任务添加到目标队列中,以按照针对目标队列预设的资源分配策略执行资源分配任务。如此,可以实现将用户的资源分配任务添加到该用户绑定的队列中,使得业务配置更为灵活。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

Claims (10)

1.一种资源分配方法,其特征在于,应用于YARN中的资源管理器,所述方法包括:
在获得目标用户的资源分配任务时,依次访问预设的至少一个队列分配规则;
若访问的队列分配规则中包括所述目标用户的身份信息,则从所述队列分配规则关联的队列分配策略中查找目标队列;
将所述资源分配任务添加到所述目标队列中,以按照针对所述目标队列预设的资源分配策略执行所述资源分配任务。
2.根据权利要求1所述的资源分配方法,其特征在于,所述队列分配策略包括指定队列;
所述从所述队列分配规则关联的队列分配策略中查找目标队列,包括:
将所述指定队列作为所述目标队列。
3.根据权利要求1所述的资源分配方法,其特征在于,所述队列分配策略包括:应用程序的服务类型和队列的映射关系;
所述从所述队列分配规则关联的队列分配策略中查找目标队列,包括:
根据所述资源分配任务关联的应用程序的服务类型确定匹配的所述映射关系,将匹配的所述映射关系中记录的队列作为所述目标队列。
4.根据权利要求3所述的资源分配方法,其特征在于,将匹配的所述映射关系中记录的队列作为所述目标队列,包括:
若匹配的所述映射关系中记录有多个队列,则基于预设的选取策略从该多个队列中选择一个作为所述目标队列;
若匹配的所述映射关系中记录有一个队列,则将该队列作为所述目标队列。
5.根据权利要求根据权利要求1-4中任意一项所述的资源分配方法,其特征在于,在将所述资源分配任务添加到所述目标队列中之前,所述方法还包括:
查找所述资源管理器中是否存在所述目标队列;
若所述资源管理器中不存在所述目标队列,则判断所述访问的队列分配规则是否允许新建队列;
若所述当前访问的队列分配规则允许新建队列,则新建一个队列作为所述目标队列;
若所述当前访问的队列分配规则不允许新建队列,则访问下一个队列分配规则。
6.一种资源分配装置,其特征在于,应用于YARN中的资源管理器,所述装置包括:
规则访问模块,用于在获得目标用户的资源分配任务时,依次访问预设的至少一个队列分配规则;
查找模块,用于在访问的队列分配规则中包括所述目标用户的身份信息的情况下,从所述队列分配规则关联的队列分配策略中查找目标队列;
分配模块,用于将所述资源分配任务添加到所述目标队列中,以按照针对所述目标队列预设的资源分配策略执行所述资源分配任务。
7.根据权利要求6所述的资源分配装置,其特征在于,所述队列分配策略包括指定队列;所述查找模块,具体用于:
将所述指定队列作为所述目标队列。
8.根据权利要求6所述的资源分配装置,其特征在于,所述队列分配策略包括:应用程序的服务类型和队列的映射关系;所述查找模块,具体用于:
根据所述资源分配任务关联的应用程序的服务类型确定匹配的所述映射关系,将匹配的所述映射关系中记录的队列作为所述目标队列。
9.根据权利要求8所述的资源分配装置,其特征在于,所述查找模块通过以下方式将匹配的所述映射关系中记录的队列作为所述目标队列:
若匹配的所述映射关系中记录有多个队列,则基于预设的选取策略从该多个队列中选择一个作为所述目标队列;
若匹配的所述映射关系中记录有一个队列,则将该队列作为所述目标队列。
10.根据权利要求6-9中任意一项所述的资源分配装置,其特征在于,所述查找模块,还用于:
在将所述资源分配任务添加到所述目标队列中之前,查找所述资源管理器中是否存在所述目标队列;若所述资源管理器中不存在所述目标队列,则判断所述访问的队列分配规则是否允许新建队列;若所述当前访问的队列分配规则允许新建队列,则新建一个队列作为所述目标队列;若所述当前访问的队列分配规则不允许新建队列,则访问下一个队列分配规则。
CN201811584199.1A 2018-12-24 2018-12-24 资源分配方法及装置 Active CN109684092B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811584199.1A CN109684092B (zh) 2018-12-24 2018-12-24 资源分配方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811584199.1A CN109684092B (zh) 2018-12-24 2018-12-24 资源分配方法及装置

Publications (2)

Publication Number Publication Date
CN109684092A true CN109684092A (zh) 2019-04-26
CN109684092B CN109684092B (zh) 2023-03-10

Family

ID=66188083

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811584199.1A Active CN109684092B (zh) 2018-12-24 2018-12-24 资源分配方法及装置

Country Status (1)

Country Link
CN (1) CN109684092B (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110069335A (zh) * 2019-05-07 2019-07-30 江苏满运软件科技有限公司 任务处理系统、方法、计算机设备和存储介质
CN110852559A (zh) * 2019-09-24 2020-02-28 京东数字科技控股有限公司 资源的分配方法和装置、存储介质、电子装置
CN111679900A (zh) * 2020-06-15 2020-09-18 杭州海康威视数字技术股份有限公司 任务处理方法和装置
CN112015554A (zh) * 2020-08-27 2020-12-01 郑州阿帕斯数云信息科技有限公司 任务处理方法和装置
CN112330367A (zh) * 2020-11-13 2021-02-05 北京沃东天骏信息技术有限公司 虚拟资源分配方法、装置、系统、电子设备及存储介质
CN112433829A (zh) * 2019-08-26 2021-03-02 无锡江南计算技术研究所 以用户为核心的高性能计算机资源管理方法
CN113127185A (zh) * 2019-12-31 2021-07-16 北京懿医云科技有限公司 任务执行队列处理方法及装置、存储介质、电子设备
CN113365116A (zh) * 2020-03-04 2021-09-07 青岛海信传媒网络技术有限公司 音视频资源管理方法及装置
CN114816687A (zh) * 2021-01-22 2022-07-29 京东方科技集团股份有限公司 集群资源控制方法、装置及存储介质
CN110764903B (zh) * 2019-09-19 2023-06-16 平安科技(深圳)有限公司 弹性执行热容器方法、装置、设备和存储介质
CN117687781A (zh) * 2023-12-07 2024-03-12 上海信投数字科技有限公司 算力调度系统、方法、设备及可读介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6389421B1 (en) * 1997-12-11 2002-05-14 International Business Machines Corporation Handling processor-intensive operations in a data processing system
CN101958836A (zh) * 2010-10-12 2011-01-26 中兴通讯股份有限公司 层次化服务质量中队列资源管理方法及装置
CN104407921A (zh) * 2014-12-25 2015-03-11 浪潮电子信息产业股份有限公司 一种基于时间的yarn任务资源动态调度方法
CN107018091A (zh) * 2016-02-29 2017-08-04 阿里巴巴集团控股有限公司 资源请求的调度方法和装置
CN107135241A (zh) * 2016-02-26 2017-09-05 新华三技术有限公司 一种业务处理方法和装置
CN108563508A (zh) * 2018-04-27 2018-09-21 新华三大数据技术有限公司 Yarn资源分配方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6389421B1 (en) * 1997-12-11 2002-05-14 International Business Machines Corporation Handling processor-intensive operations in a data processing system
CN101958836A (zh) * 2010-10-12 2011-01-26 中兴通讯股份有限公司 层次化服务质量中队列资源管理方法及装置
CN104407921A (zh) * 2014-12-25 2015-03-11 浪潮电子信息产业股份有限公司 一种基于时间的yarn任务资源动态调度方法
CN107135241A (zh) * 2016-02-26 2017-09-05 新华三技术有限公司 一种业务处理方法和装置
CN107018091A (zh) * 2016-02-29 2017-08-04 阿里巴巴集团控股有限公司 资源请求的调度方法和装置
CN108563508A (zh) * 2018-04-27 2018-09-21 新华三大数据技术有限公司 Yarn资源分配方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ANONYMOUS: "Hadoop:Fair Schedule", 《HTTPS://WEB.ARCHIVE.ORG/WEB/20181209225043/HTTPS://HADOOP.APACHE.ORG/DOCS/R2.7.1/HADOOP-YARN/HADOOP-YARN-SITE/FAIRSCHEDULER.HTML》 *
王荣丽等: "基于优先级权重的Hadoop YARN调度算法", 《吉林大学学报(信息科学版)》 *

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110069335A (zh) * 2019-05-07 2019-07-30 江苏满运软件科技有限公司 任务处理系统、方法、计算机设备和存储介质
CN112433829A (zh) * 2019-08-26 2021-03-02 无锡江南计算技术研究所 以用户为核心的高性能计算机资源管理方法
CN110764903B (zh) * 2019-09-19 2023-06-16 平安科技(深圳)有限公司 弹性执行热容器方法、装置、设备和存储介质
CN110852559A (zh) * 2019-09-24 2020-02-28 京东数字科技控股有限公司 资源的分配方法和装置、存储介质、电子装置
CN113127185A (zh) * 2019-12-31 2021-07-16 北京懿医云科技有限公司 任务执行队列处理方法及装置、存储介质、电子设备
CN113127185B (zh) * 2019-12-31 2023-11-10 北京懿医云科技有限公司 任务执行队列处理方法及装置、存储介质、电子设备
CN113365116B (zh) * 2020-03-04 2022-12-13 Vidaa(荷兰)国际控股有限公司 音视频资源管理方法及装置
CN113365116A (zh) * 2020-03-04 2021-09-07 青岛海信传媒网络技术有限公司 音视频资源管理方法及装置
CN111679900B (zh) * 2020-06-15 2023-10-31 杭州海康威视数字技术股份有限公司 任务处理方法和装置
CN111679900A (zh) * 2020-06-15 2020-09-18 杭州海康威视数字技术股份有限公司 任务处理方法和装置
CN112015554B (zh) * 2020-08-27 2023-02-28 郑州阿帕斯数云信息科技有限公司 任务处理方法和装置
CN112015554A (zh) * 2020-08-27 2020-12-01 郑州阿帕斯数云信息科技有限公司 任务处理方法和装置
CN112330367A (zh) * 2020-11-13 2021-02-05 北京沃东天骏信息技术有限公司 虚拟资源分配方法、装置、系统、电子设备及存储介质
CN114816687A (zh) * 2021-01-22 2022-07-29 京东方科技集团股份有限公司 集群资源控制方法、装置及存储介质
CN117687781A (zh) * 2023-12-07 2024-03-12 上海信投数字科技有限公司 算力调度系统、方法、设备及可读介质

Also Published As

Publication number Publication date
CN109684092B (zh) 2023-03-10

Similar Documents

Publication Publication Date Title
CN109684092A (zh) 资源分配方法及装置
Devi et al. Load balancing in cloud computing environment using improved weighted round robin algorithm for nonpreemptive dependent tasks
CN109684065B (zh) 一种资源调度方法、装置及系统
CN104854563B (zh) 资源使用的自动分析
US9092266B2 (en) Scalable scheduling for distributed data processing
US8271987B1 (en) Providing access to tasks that are available to be performed
CN111931949A (zh) 联邦学习环境中的通信
CN107018091B (zh) 资源请求的调度方法和装置
CN109791532A (zh) 分散计算系统中的功率管理
JP2004302918A (ja) 負荷分散方法及びその実施システム並びにその処理プログラム
CN109565515A (zh) 分布式资源管理系统中的动态租户结构调整的系统、设备和过程
US9875139B2 (en) Graphics processing unit controller, host system, and methods
CN104040486A (zh) 解耦paas资源、作业和调度
CN108829507A (zh) 分布式数据库系统的资源隔离方法、装置和服务器
US20130013357A1 (en) Uniformly Managing Resources and Business Operations
US20120054765A1 (en) Identity and semaphore-based quality of service
Islam et al. SLA-based scheduling of spark jobs in hybrid cloud computing environments
US8626799B2 (en) Mapping data structures
US9262505B2 (en) Input-output prioritization for database workload
CN102790715A (zh) 一种基于互联网的资源分配系统及方法
Jeyaraj et al. Improving MapReduce scheduler for heterogeneous workloads in a heterogeneous environment
US20150212859A1 (en) Graphics processing unit controller, host system, and methods
Kim et al. Virtual machines placement for network isolation in clouds
Ghazali et al. CLQLMRS: improving cache locality in MapReduce job scheduling using Q-learning
US11016816B1 (en) Compute capacity allocation based on multi-factor analysis

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