CN105512083B - 基于yarn的资源管理方法、装置及系统 - Google Patents
基于yarn的资源管理方法、装置及系统 Download PDFInfo
- Publication number
- CN105512083B CN105512083B CN201510864316.XA CN201510864316A CN105512083B CN 105512083 B CN105512083 B CN 105512083B CN 201510864316 A CN201510864316 A CN 201510864316A CN 105512083 B CN105512083 B CN 105512083B
- Authority
- CN
- China
- Prior art keywords
- resource
- node
- fpga
- container
- subtask
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 230000004044 response Effects 0.000 claims description 27
- 230000015654 memory Effects 0.000 claims description 23
- 230000005540 biological transmission Effects 0.000 claims description 6
- 238000012795 verification Methods 0.000 claims description 6
- 238000001514 detection method Methods 0.000 claims description 4
- 238000004138 cluster model Methods 0.000 claims description 2
- 230000035508 accumulation Effects 0.000 claims 2
- 238000009825 accumulation Methods 0.000 claims 2
- 238000007726 management method Methods 0.000 description 54
- 238000004422 calculation algorithm Methods 0.000 description 26
- 230000001133 acceleration Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 15
- 238000005516 engineering process Methods 0.000 description 10
- 101100373202 Rattus norvegicus Cx3cl1 gene Proteins 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000007711 solidification Methods 0.000 description 2
- 230000008023 solidification Effects 0.000 description 2
- 101100268668 Caenorhabditis elegans acc-2 gene Proteins 0.000 description 1
- 241001269238 Data Species 0.000 description 1
- 238000009412 basement excavation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 208000003476 primary myelofibrosis Diseases 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 241000894007 species Species 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17356—Indirect interconnection networks
-
- 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
-
- 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/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明提供一种基于YARN的资源管理方法、装置及系统,通过在作业报文携带基于扩展计算框架编写的应用程序和应用程序配置,应用程序配置包含应用程序标签和各子任务所需的资源容器描述,资源容器描述包含资源类型和资源量,需要加速的子任务的资源描述容器描述中,资源类型包括FPGA资源类型;基于集群中所有NM的空闲资源容器描述和资源标签为AM分配计算资源,使用资源标签标注应用程序中各子任务加速所需的FPGA,经扩展后的集群资源表示模型仅与集群支持的计算框架的种类相关,从而在将FPGA加入到YARN中时,克服由于该计算资源的专用性导致的YARN中资源表示维度动态扩展问题,增强YARN中资源管理的灵活性。
Description
技术领域
本发明实施例涉及通信技术,尤其涉及一种基于YARN的资源管理方法、装置及系统。
背景技术
现场可编程逻辑门阵列(Field Programmable Gate Array,简称:FPGA)是一种高并行、低功耗、可编程的硬件设备,其硬件计算性能优于通用中央处理器(CentralProcessing Unit,简称:CPU)。采用CPU和FPGA构建异构多核系统,以CPU提供通用计算的能力,以FPGA芯片作为专用的硬件加速器成为了高性能计算领域的重要发展趋势。
另一种资源协调器(Yet Another Resource Negotiator,简称:YARN)作为海杜普(Hadoop)2.0原生资源调度系统,可以为包括编程模型MapReduce在内的多种计算框架资源的管理和分配。为提高YARN大数据挖掘应用中的计算性能,可将FPGA作为一种新的计算资源加入到YARN中,把分布式计算过程中的子任务转移到FPGA上处理,达到加速计算密集型算法执行效率的目的。
现阶段,YARN的资源扩展方案使用资源表示维度扩展的方式来表示集群中添加的计算资源。目前已有研究人员使用这种方式将图形处理器(Graphics Processing Unit,简称:GPU)计算资源添加到集群当中,将YARN资源表示模型扩展为<内存,CPU,GPU>三维。
但是FPGA不同于具有指令系统的GPU,FPGA上电运行过程中,其内固化的算法逻辑不能修改,且存在特定的计算任务只能够在烧写有特定逻辑的FPGA上运行的特点。由于FPGA对于计算逻辑的专用型,固化有不同计算逻辑的FPGA不能当做同一种加速器,安装了固化不同计算逻辑的FPGA的集群,逻辑上是一个异构集群。因此,使用资源表示维度扩展的方式表示集群中的FPGA计算资源时,集群中每增加一种固化了新的算法的FPGA,集群资源表示维度就要增加一维。而YARN的多维资源调度算法只适用于集群资源表示维度固定的环境,这种情况下,每向集群中增加一种处理逻辑不同的FPGA,就需要重新实现YARN资源管理平台,才能对新的专用计算资源进行支持。另外,集群资源表示维度过高也会影响资源调度器的调度效率。因此,如何将FPGA这种新的计算资源加入到YARN中成为当前需要解决的技术问题。
发明内容
本发明提供一种基于YARN的资源管理方法、装置及系统,以在将FPGA这种新的计算资源加入到YARN中时,克服由于FPGA这种计算资源的专用性导致的YARN中资源表示维度动态扩展问题。
第一方面,本发明提供一种基于YARN的资源管理方法,包括:
RM获取在扩展计算框架下编写的作业报文,该作业报文携带基于扩展计算框架编写的应用程序和应用程序配置,该应用程序包含AM和子任务,该子任务用于表征应用程序的不同执行阶段,该应用程序配置包含应用程序的应用程序标签和各子任务所需的资源容器描述,资源容器描述包含资源类型和资源量,所述资源容器描述是指资源容器是采用依据集群中运行的扩展计算框架的种类进行后扩展的资源表示模型来描述的,需要加速的子任务的资源描述容器描述中,资源类型包括FPGA资源类型;
RM根据AM所需的资源容器描述,在满足AM资源要求的节点上启动AM,RM接收AM在当前执行阶段的资源请求报文,该资源请求报文包含当前执行阶段所需的资源容器描述和应用程序标签;
RM根据资源请求报文,基于集群中所有NM的空闲资源容器描述和资源标签,为AM分配计算资源,资源标签与应用程序标签一一对应;
RM发送资源响应报文给AM,其中,该资源响应报文包含分配给AM的资源标签、资源容器描述和目标节点的标识,目标节点为RM为AM分配的计算资源所在的节点。
本发明通过在作业报文携带基于扩展计算框架编写的应用程序和应用程序配置,其中,应用程序配置包含应用程序的应用程序标签和各子任务所需的资源容器描述,资源容器描述包含资源类型和资源量,需要加速的子任务的资源描述容器描述中,资源类型包括FPGA资源类型,并基于集群中所有NM的空闲资源容器描述和资源标签,为AM分配计算资源,其中,资源标签与应用程序标签一一对应,使用资源标签标注应用程序中各子任务加速所需的FPGA,经扩展后的集群资源表示模型仅与集群支持的计算框架的种类相关,与集群中运行的特定算法的种类无关,从而解决了在将FPGA这种新的计算资源(或类似FPGA的计算资源)加入到YARN中时,克服由于FPGA这种计算资源的专用性导致的YARN中资源表示维度动态扩展问题,增强YARN中资源管理的灵活性,且扩展后YARN中资源类型的可扩展性高。
在第一方面的第一种实现方式中,RM根据资源请求报文,基于集群中所有NM的空闲资源容器描述和资源标签,为AM分配计算资源,包括:RM将资源请求报文中的应用程序标签映射到第一资源标签;若RM在所有当前报告空闲资源的NM中找到一个包含第一资源标签的NM,则在包含第一资源标签的NM所在节点上为AM分配计算资源。
在第一方面的第二种实现方式中,在包含第一资源标签的NM所在的节点上为AM分配计算资源,包括:若包含第一资源标签的NM所在的节点上的空闲资源量满足AM资源要求的资源量,则在包含第一资源标签的NM所在的节点上为AM分配计算资源;或者,若包含第一资源标签的NM所在的节点上的空闲资源量不满足AM资源要求的资源量,则标记包含第一资源标签的NM所在的节点,在包含第一资源标签的NM所在的节点上为AM累积资源,直到包含第一资源标签的NM所在的节点上的NM报告的资源量大于AM资源要求的资源量,再在包含第一资源标签的NM所在节点上为AM分配计算资源。
在第一方面的第三种实现方式中,该方法还包括:RM接收集群中NM发送的心跳报文,该心跳报文中包含发出该心跳报文的NM所在节点上的资源标签和空闲资源容器描述。该实施例中,RM通过心跳报文获知集群中各节点的空闲资源,实现空闲资源在RM中的实时更新。
第二方面,本发明提供一种基于YARN的资源管理方法,包括:
在启动之后,应用程序管理器AM生成当前执行阶段的资源请求报文,资源请求报文包含当前执行阶段将要运行的子任务所需的资源容器描述和应用程序标签,资源容器描述是指资源容器是采用依据集群中运行的扩展计算框架的种类进行后扩展的资源表示模型来描述的;
AM发送资源请求报文给集群资源管理器RM,以使RM根据资源请求报文,基于集群中所有NM的空闲资源容器描述和资源标签,为AM分配计算资源,资源标签与应用程序标签一一对应;
AM接收RM发送的资源响应报文,其中,该资源响应报文包含分配给AM的资源标签、资源容器描述和目标节点的标识,该目标节点为RM为AM分配的计算资源所在的节点,资源容器描述包含资源类型和资源量,需要加速的子任务的资源描述容器描述中,资源类型包括FPGA资源类型;
AM将RM为其分配的资源标签和资源容器描述转发给目标节点的NM,以使NM验证执行许可后在目标节点上分配计算资源供AM执行当前执行阶段的子任务。
通过在作业报文携带基于扩展计算框架编写的应用程序和应用程序配置,其中,应用程序配置包含应用程序的应用程序标签和各子任务所需的资源容器描述,资源容器描述包含资源类型和资源量,需要加速的子任务的资源描述容器描述中,资源类型包括FPGA资源类型,并基于集群中所有NM的空闲资源容器描述和资源标签,为AM分配计算资源,其中,资源标签与应用程序标签一一对应,使用资源标签标注应用程序中各子任务加速所需的FPGA,经扩展后的集群资源表示模型仅与集群支持的计算框架的种类相关,与集群中运行的特定算法的种类无关,从而解决了在将FPGA这种新的计算资源(或类似FPGA的计算资源)加入到YARN中时,克服由于FPGA这种计算资源的专用性导致的YARN中资源表示维度动态扩展问题,增强YARN中资源管理的灵活性,且扩展后YARN中资源类型的可扩展性高。
在第二方面的第一种实现方式中,AM生成当前执行阶段的资源请求报文,包括:
AM解析应用程序配置,确定应用程序标签,以及应用程序包含的子任务以及执行每个子任务所需的资源容器描述,其中,应用程序配置为AM所在的节点启动AM之前,节点从集群共享存储空间中获取的作业报文中携带的,作业报文携带基于扩展计算框架编写的应用程序和应用程序配置,应用程序包含AM和子任务,子任务用于表征应用程序的不同执行阶段,应用程序配置包含应用程序标签和各子任务所需的资源容器描述;
AM根据应用程序的执行阶段,按照预设的资源表示模型向RM发送当前执行阶段需要启动的子任务的资源请求报文。
第三方面,本发明提供一种基于YARN的资源管理方法,包括:
NM接收AM转发的资源标签和资源容器描述,资源容器描述是指资源容器是采用依据集群中运行的扩展计算框架的种类进行后扩展的资源表示模型来描述的;
NM基于资源标签和资源容器描述,在NM所在节点分配计算资源供AM执行当前执行阶段的子任务,资源容器描述包含资源类型和资源量,资源类型包括FPGA资源类型。
通过在作业报文携带基于扩展计算框架编写的应用程序和应用程序配置,其中,应用程序配置包含应用程序的应用程序标签和各子任务所需的资源容器描述,资源容器描述包含资源类型和资源量,需要加速的子任务的资源描述容器描述中,资源类型包括FPGA资源类型,并基于集群中所有NM的空闲资源容器描述和资源标签,为AM分配计算资源,其中,资源标签与应用程序标签一一对应,使用资源标签标注应用程序中各子任务加速所需的FPGA,经扩展后的集群资源表示模型仅与集群支持的计算框架的种类相关,与集群中运行的特定算法的种类无关,从而解决了在将FPGA这种新的计算资源(或类似FPGA的计算资源)加入到YARN中时,克服由于FPGA这种计算资源的专用性导致的YARN中资源表示维度动态扩展问题,增强YARN中资源管理的灵活性,且扩展后YARN中资源类型的可扩展性高。
在第三方面的第一种实现方式中,NM接收AM转发的资源标签和资源容器描述之后,还包括:NM检测资源容器描述中是否存在FPGA;若资源容器描述中存在FPGA,则在FPGA资源管理表中找到一空闲FPGA,将该空闲FPGA的路径传递给当前执行的子任务,并在FPGA资源管理表中删除该空闲FPGA,或者,在FPGA资源管理表中将该空闲FPGA的状态更新为非空闲状态。
在第三方面的第二种实现方式中,该方法还包括:在当前执行的子任务完成之后,将空闲FPGA重新记录至FPGA资源管理表中,或者,将空闲FPGA在FPGA资源管理表中状态更新为空闲状态。该实施例可实现FPGA资源管理表的实时更新,以便于集群中各节点所具有的NM对FPGA的有效管理
在第三方面的第三种实现方式中,该方法还包括:NM发送心跳报文给集群资源管理器RM,该心跳报文中包含NM所在节点上的资源标签和空闲资源容器描述。该实施例中,RM通过心跳报文获知集群中各节点的空闲资源,实现空闲资源在RM中的实时更新。
以下装置,可以用于执行上述方法实施例的技术方案,其技术效果类似,因此不再赘述。
第四方面,本发明一种基于YARN的资源管理装置,包括:
获取模块,用于获取在扩展计算框架下编写的作业报文,作业报文携带基于扩展计算框架编写的应用程序和应用程序配置,应用程序包含AM和子任务,子任务用于表征应用程序的不同执行阶段,应用程序配置包含应用程序的应用程序标签和各子任务所需的资源容器描述,资源容器描述包含资源类型和资源量,所述资源容器描述是指资源容器是采用依据集群中运行的扩展计算框架的种类进行后扩展的资源表示模型来描述的,需要加速的子任务的资源描述容器描述中,资源类型包括FPGA资源类型;
触发模块,用于根据AM所需的资源容器描述,在满足AM资源要求的节点上启动AM;
接收模块,用于接收AM在当前执行阶段的资源请求报文,资源请求报文包含当前执行阶段所需的资源容器描述和应用程序标签;
分配模块,用于根据资源请求报文,基于集群中所有NM的空闲资源容器描述和资源标签,为AM分配计算资源,资源标签与应用程序标签一一对应;
发送模块,用于发送资源响应报文给AM,其中,资源响应报文包含分配给AM的资源标签、资源容器描述和目标节点的标识,目标节点为装置为AM分配的计算资源所在的节点。
在第四方面的第一种实现方式中,分配模块包括:映射单元,用于将资源请求报文中的应用程序标签映射到第一资源标签;分配单元,用于若在所有当前报告空闲资源的NM中找到一个包含第一资源标签的NM,则在包含第一资源标签的NM所在节点上为AM分配计算资源。
在第四方面的第二种实现方式中,分配单元具体用于:若包含第一资源标签的NM所在的节点上的空闲资源量满足AM资源要求的资源量,则在包含第一资源标签的NM所在的节点上为AM分配计算资源;或者,若包含第一资源标签的NM所在的节点上的空闲资源量不满足AM资源要求的资源量,则标记包含第一资源标签的NM所在的节点,在包含第一资源标签的NM所在的节点上为AM累积资源,直到包含第一资源标签的NM所在的节点上的NM报告的资源量大于AM资源要求的资源量,再在包含第一资源标签的NM所在节点上为AM分配计算资源。
在第四方面的第三种实现方式中,接收模块还用于:接收集群中NM发送的心跳报文,该心跳报文中包含发出所述心跳报文的NM所在节点上的资源标签和空闲资源容器描述。
第五方面,本发明提供一种基于YARN的资源管理装置,集成于AM,包括:
报文生成模块,用于在AM启动之后,生成当前执行阶段的资源请求报文,资源请求报文包含当前执行阶段将要运行的子任务所需的资源容器描述和应用程序标签,资源容器描述是指资源容器是采用依据集群中运行的扩展计算框架的种类进行后扩展的资源表示模型来描述的;
发送模块,用于发送资源请求报文给集群资源管理器RM,以使RM根据资源请求报文,基于集群中所有NM的空闲资源容器描述和资源标签,为AM分配计算资源,资源标签与应用程序标签一一对应;
接收模块,用于接收RM发送的资源响应报文,其中,资源响应报文包含分配给AM的资源标签、资源容器描述和目标节点的标识,目标节点为RM为AM分配的计算资源所在的节点,资源容器描述包含资源类型和资源量,需要加速的子任务的资源描述容器描述中,资源类型包括FPGA资源类型;
发送模块,还用于将RM为其分配的资源标签和资源容器描述转发给目标节点的NM,以使NM验证执行许可后在目标节点上分配计算资源供AM执行当前执行阶段的子任务。
在第五方面的第一种实现方式中,报文生成模块具体用于:解析应用程序配置,确定应用程序标签,以及应用程序包含的子任务以及执行每个子任务所需的资源容器描述,其中,应用程序配置为AM所在的节点启动AM之前,节点从集群共享存储空间中获取的作业报文中携带的,作业报文携带基于扩展计算框架编写的应用程序和应用程序配置,应用程序包含AM和子任务,子任务用于表征应用程序的不同执行阶段,应用程序配置包含应用程序标签和各子任务所需的资源容器描述;
根据应用程序的执行阶段,按照预设的资源表示模型向RM发送当前执行阶段需要启动的子任务的资源请求报文。
第六方面,本发明提供一种基于YARN的资源管理装置,集成于NM,包括:
接收模块,用于接收AM转发的资源标签和资源容器描述,资源容器描述是指资源容器是采用依据集群中运行的扩展计算框架的种类进行后扩展的资源表示模型来描述的;
分配模块,用于基于资源标签和资源容器描述,在NM所在节点分配计算资源供AM执行当前执行阶段的子任务,资源容器描述包含资源类型和资源量,资源类型包括FPGA资源类型。
在第六方面的第一种实现方式中,该装置还包括:检测模块,用于检测资源容器描述中是否存在FPGA。此时,分配模块,具体用于若资源容器描述中存在FPGA,则在FPGA资源管理表中找到一空闲FPGA,将空闲FPGA的路径传递给当前执行的子任务,并在FPGA资源管理表中删除空闲FPGA,或者,在FPGA资源管理表中将空闲FPGA的状态更新为非空闲状态。
在第六方面的第二种实现方式中,分配模块还用于:在当前执行的子任务完成之后,将空闲FPGA重新记录至FPGA资源管理表中,或者,将上述空闲FPGA在FPGA资源管理表中状态更新为空闲状态。
在第六方面的第三种实现方式中,该装置还包括:发送模块,用于发送心跳报文给集群资源管理器RM,心跳报文中包含NM所在节点上的资源标签和空闲资源容器描述。
第七方面,本发明提供一种基于YARN的资源管理系统,包括:节点和管理节点,其中,管理节点包括RM,所述RM包括第四方面任一项所述的装置;所述节点包括NM和AM,该NM包括如第六方面任一项所述的装置,该AM包括如第五方面任一项所述的装置。
本发明还提供一种向后兼容的YARN通用计算框架扩展方法以在通用计算框架的任意子任务计算步骤中使用FPGA加速器加速,方便集群用户按照原计算框架处理逻辑,编写FPGA加速的计算作业。
本发明增强了通用计算框架内子任务计算资源设定接口,以及作业管理器解析作业并确定子任务所需计算资源的能力,并在节点资源管理器上提供了本地多种FPGA加速器资源的登记、调度和分配能力。经扩展后的计算框架保持了和原有计算框架相同的作业处理流程,用户可以指定在任意子任务阶段使用FPGA加速器加速。同时,扩展计算框架能够兼容面向原有通用计算框架编写的作业的运行。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为集群硬件结构示意图;
图2为本发明应用场景示意图;
图3为本发明基于YARN的资源管理方法实施例一的流程图;
图4示出原生AM向本发明实施例中RM请求资源的示意图;
图5示出本发明实施例中RM向原生AM响应其请求资源的示意图;
图6为本发明基于YARN的资源管理装置实施例一的结构示意图;
图7为本发明基于YARN的资源管理装置实施例二的结构示意图;
图8为本发明基于YARN的资源管理装置实施例三的结构示意图;
图9为本发明基于YARN的资源管理系统实施例一的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书、权利要求书及上述附图中的术语“第一”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明应用于基于YARN的集群,其中,集群中的节点可以是加挂了烧写有特定计算框架下的特定加速算法的某一任务阶段计算逻辑的FPGA。客户端向集群提交的加速应用中,计算密集型子任务可以自动调度到含有对应FPGA的节点上进行计算加速,集群硬件结构如图1所示。
参考图1,集群包括多个节点,其中,部分节点上的资源类型包括CPU和内存,其余节点上的资源类型包括CPU、内存和FPGA。其中,FPGA1和FPGA2分别表示固化有不同算法逻辑的FPGA,不同节点中的FPGA1/FPGA2相同或不同,本发明实施例不对其进行限制。FPGA1和FPGA2,与主机(未示出)通过增强的外设组件互联(Enhanced Peripheral ComponentInterconnect,简称:PCI-e)总线连接。在集群中,不同节点通过以太网互联。
其中,一个结合具体硬件的应用场景示意图如图2所示。
资源表示模型。YARN使用多维向量的方式来表示集群中的资源。其中,多维向量的维度取决于YARN中集成的不同资源类型数目。原生YARN的资源表示为两维,即<CPU,内存>。本发明实施例在对资源表示模型进行维度扩展时,按照YARN中集成的计算框架的种类,以及不同计算框架中最大的需要FPGA加速的计算阶段的数目来确定扩展YARN中的资源表示模型。例如,MapReduce计算框架中,一个作业最多包含两个任务阶段,即映射(Map)阶段和归约(Reduce)阶段,可设定最大的需要FPGA加速的计算阶段数目为2。如果需要在集群中运行FPGA的MapReduce计算框架,则可以将集群资源表示模型扩展为<CPU,内存,Map加速器,Reduce加速器>四维。如果还需要在集群中运行FPGA加速的Storm计算框架或Taz计算框架,则需要在整个集群中限制计算框架内的作业中需要使用FPGA加速的任务阶段的个数。假设限制集群内Storm计算框架中需要使用FPGA加速的任务阶段的个数最多为S,Taz计算框架中需要使用FPGA加速的任务阶段的个数最多为T,则在集成了各种计算框架所需的FPGA以后的YARN的资源表示模型示例如表1所示。
表1集成FPGA之后的YARN的资源表示模型
注:T和S分别为Taz计算框架和Storm计算框架中需要加速的任务阶段的最大个数,i=1,…,T,j=1,…,S。其中,StormTaskAccj、MapAcc、ReduceAcc和TazTaskAcci等为实例化的FPGA,这里仅示例说明。
由于整个集群中运行的计算框架的数目有限,并且在实际应用中多阶段计算框架(如Taz计算框架和Storm计算框架)内需要FPGA加速的任务阶段数目有限,所以可以预先确定整个集群中的资源表示模型的维度。需要指出的是资源表示模型仅用于表示节点具有加速某个计算框架的某个处理步骤的能力,但是并没有限定该节点中的FPGA能够用于该计算框架下哪种具体作业的加速。指明节点能够加速哪种具体作业,是通过节点的资源标签完成的。多维向量的维度只和计算框架的种类以及计算框架包含的任务阶段个数相关,和集群上运行的具体算法的种类数无关。
为节点添加资源标签。根据节点上加挂的FPGA中算法逻辑的不同为节点打上不同的资源标签,同一个节点上可以具有多个资源标签,标示该节点上能够加速的算法类型。
例如,节点1具有用于加速KMeansMapReduce计算任务的MapAcc,图2中采用FPGA10表示;以及用于加速某日志分析Storm应用的LogProcessStormTaskAccj,图2中采用FPGA20表示,则可为该节点1打上“KMeansMapReduce”和“LogProcessStorm”两个资源标签,也就是图2所示的算法1、算法2和算法3,其中,算法1对应资源标签“任意”,算法2对应资源标签“KMeansMapReduce”,算法3对应资源标签“LogProcessStorm”,表示该节点1能够参与KmenasMapReduce作业的加速处理,以及日志分析Storm作业的加速处理。另外,节点1上也可以运行无需加速的普通任务,可以为节点1打上“任意”资源标签。随后,根据节点上的资源类型和资源量,设定节点的资源表示。例如,节点1包含了两个用于加速KMeansMapReduce作业Map阶段的FPG10,和1个用于加速Storm应用第j个阶段的FPGA20,同时还具有8CPU虚拟核和16GB内存,则节点1的资源表示如表2所示。
另外,节点2中的FPGA30和FPGA40,及节点3中FPGA50的含义可参考节点1中FPGA10和FPGA20的含义;节点2中的算法4和算法5,及及节点3中的算法6的含义可参考节点1中算法1、算法2和算法3的含义,此处不再赘述。
表2节点1资源表示
CPU | 内存 | MapAcc | StormTaskAccj |
16 | 16 | 2 | 1 |
注:未列出资源量为0的资源。
设置了资源标签之后,整个集群中的节点根据其能够处理的任务类型被划分成了几个逻辑的集群。一节点可以同时隶属于不同的逻辑集群,每个逻辑集群用于处理一类计算任务。例如,当集群中节点的资源标签分布如表3所示时,逻辑集群划分情况如表4所示。
表3集群中节点的资源标签分布
注:“任意”表示节点可以运行普通任务。
表4逻辑集群划分
逻辑集群名称 | 节点 |
任意 | M1,M2,M3,M4 |
KmenasMapReduce | M1,M2,M4 |
PageRankTaz | M1,M3 |
LogProcessStorm | M2,M3,M4 |
BayesMapReduce | M3,M4 |
每个逻辑集群用于处理一类计算任务。如逻辑集群名称为“任意”中的节点都包含了CPU和内存,可以用于处理不需要加速的普通应用。KmenasMapReduce、BayesMapReduce、PageRankTaz、LogProcessStorm四个逻辑集群中的节点中包含特定任务加速所需的FPGA。对于含有FPGA的节点,资源标签标注了其可以运行的作业的类型,资源量标注了节点可以加速的计算阶段以及FPGA的量。例如Map资源标签表示M1能够进行Map作业的加速,其MapAcc资源量为2表明M1能够加速KMeansMapReduce作业的Map阶段,ReduceAcc资源量为0表示该节点不能被用于加速KMeansMapReduce的Redcue阶段。
为RM的任务队列设置标签。RM内部使用队列来抽象表示整个集群的资源。为了让需要加速的作业被提交到具有相应FPGA的集群当中,需要按照作业的类型,在RM上将整个集群的资源组织到几个资源队列中,并为每个资源队列设置队列标签。利用YARN自带的基于标签的调度算法,提交到某个资源队列中的作业只能被调度到具有与队列标签相同资源标签的节点上运行。资源队列的划分即是逻辑集群的划分,RM根据节点上的资源标签将其归入相应逻辑集群中,每个资源对列可以看做是一个逻辑集群。例如,将整个集群的资源划分到五个资源队列中,对应打上队列标签的名称“任意”,“KMeansMapReduce”,“XXTaz”(例如PageRankTaz),“LogProcessStorm”,“BayesMapReduce”,例如,图2中所示的资源队列1、资源队列2、资源队列3、资源队列4和资源队列5分别表示具有上述队列标签的名称的资源队列。提交到这些资源队列的作业会自然地被调度到相应逻辑集群中的节点上。
扩展计算框架。YARN下的计算框架由作业客户端(JobClient)、应用程序管理器(AM)、子任务(ChildTask)三部分组成。作业客户端用于向集群提交作业,应用程序管理器用于解析作业配置,为子任务申请资源,启动并监控子任务的运行,子任务完成具体的计算任务。
在扩展了RM的资源表示模型之后,计算框架AM的资源表示维度需要和RM一致。子任务中需要根据FPGA的交互接口设计处理应用程序,将计算任务转发到FPGA中,并取回计算结果。此外,子任务修改作业提交应用程序编程接口(Application ProgrammingInterface,简称:API)强制集群用户选择作业提交的资源队列,同时提供API供用户指明在作业的哪个任务阶段需要使用FPGA加速。
图3为本发明基于YARN的资源管理方法实施例一的流程图。如图3所示,该方法包括:
S501、RM获取在扩展计算框架下编写的作业报文。
其中,作业报文携带基于扩展计算框架编写的应用程序和应用程序配置。应用程序包含AM和子任务。子任务用于表征应用程序的不同执行阶段。应用程序配置包含应用程序的应用程序标签和各子任务所需的资源容器描述。资源容器描述包含资源类型和资源量。资源容器描述是指资源容器是采用依据集群中运行的扩展计算框架的种类进行后扩展的资源表示模型来描述的。需要加速的子任务的资源描述容器描述中,资源类型包括FPGA资源类型。
参考图2,RM所在的节点为集群的管理节点。
S502、RM根据AM所需的资源容器描述,在满足AM资源要求的节点上启动AM。
对应地,AM在启动之后,生成当前执行阶段的资源请求报文。该资源请求报文包含当前执行阶段将要运行的子任务所需的资源容器描述和应用程序标签。另外,AM所在的节点在启动AM之前,该节点从集群共享存储空间中获取作业报文。
其中,AM生成当前执行阶段的资源请求报文可以具体为:AM解析应用程序配置,确定应用程序标签,以及应用程序包含的子任务以及执行每个子任务所需的资源容器描述;AM根据应用程序的执行阶段,按照预设的资源表示模型向RM发送当前执行阶段需要启动的子任务的资源请求报文。
AM在生成资源请求报文之前,根据应用程序配置中设定的需要FPGA加速的任务阶段,确定各子任务的资源需求。例如在运行FPGA加速的MapReduce应用时,根据应用程序配置中设定的Map任务和Reduce任务是否需要FPGA加速的配置,来确定Map任务和Reduce任务的资源需求。如果Map任务需要FPGA加速而Reduce任务不需要FPGA加速,则子任务的资源需求如表5所示。
表5
对于YARN原生计算框架下编写的应用程序,该应用程序运行时只申请CPU和内存二维资源。AM和RM之间的资源请求报文是采用序列化报文在网络上传输。本发明实施例在资源请求报文序列化和反序列化时使用一种向后兼容的序列化技术,使得RM接收到的资源请求报文仅携带原生计算框架的二维资源时,自动将其扩展为多维资源表示。对于原有原生计算框架发出的资源请求报文中不包含的资源量描述字段,其代表的资源量直接被视作0,本发明实施例中RM和原生AM之间的资源请求交互如图4和图5所示。
其中,图4示出原生AM向本发明实施例中RM请求资源的示意图。具体地,原生AM向本发明实施例中RM发送资源请求报文,该资源请求报文中携带的资源容器描述包括CPU和内存,CPU与内存的资源量分别为2和1;本发明实施例中RM接收该资源请求报文之后,通过向后兼容的序列化技术,将资源容器描述扩展为包含CPU、内存和Acc1、Acc1、……、AccN等,其中,CPU与内存的资源量不发生改变,仍为2和1;Acc1、Acc1、……、AccN的资源量为0。
图5示出本发明实施例中RM向原生AM响应其请求资源的示意图。具体地,本发明实施例中RM向原生AM发送资源响应报文,该资源响应报文中携带的资源容器描述包括CPU、内存和Acc1、Acc1、……、AccN,其中,CPU与内存的资源量分别为2和1,Acc1、Acc1、……、AccN的资源量为0;原生AMM接收该资源响应报文之后,通过向前兼容的序列化技术,将资源容器描述修改为包含CPU和内存,其中,CPU与内存的资源量不发生改变,仍为2和1。
参考图4和图5,其中,Acc1、Acc2、…、AccN表示固化有不同逻辑算法的FPGA。
目前,YARN利用Protobuf来序列化资源请求报文。Protobuf是一种支持报文格式向后兼容的序列化技术,本发明实施例只需在RM中对资源请求报文序列化和对资源响应报文反序列化方式进行单方面的升级,扩充表示其他资源量的字段即可兼容原生计算框架。原生计算框架的资源请求报文中未包含的资源量描述字段,在RM被自动视为0(表示不需要该资源)。RM接收到来自扩展计算框架的含有其他资源容器描述字段的资源请求报文时,资源请求报文中描述的资源量能够被正常获取。
此外,本发明实施例在RM中对于原生计算框架提交的作业报文,如果作业客户端没有指定该作业报文的提交资源队列,则统一放入“任意”资源队列中调度。该资源队列中的子任务默认可以调度到集群中的任意一个节点上运行。
接下来,AM发送资源请求报文给RM,以使RM根据资源请求报文,基于集群中所有NM的空闲资源容器描述和资源标签,为AM分配计算资源。其中,资源标签与应用程序标签一一对应。
S503、RM接收AM在当前执行阶段的资源请求报文。
例如,参考图2,RM可接收节点1中AM1,AM1例如为Storm AM,在当前执行阶段的资源请求报文,或者,节点3中AM2,AM2例如为MR AM,在当前执行阶段的资源请求报文。
S504、RM根据资源请求报文,基于集群中所有NM的空闲资源容器描述和资源标签,为AM分配计算资源。
具体地,该步骤可以包括:RM将资源请求报文中的应用程序标签映射到第一资源标签;若RM在所有有当前报告空闲资源的NM中找到一个包含所述第一资源标签的NM,则在包含第一资源标签的NM所在节点上为AM分配计算资源。
其中,在包含第一资源标签的NM所在节点上为AM分配计算资源,包括:若包含第一资源标签的NM所在的节点上的空闲资源量满足AM资源要求的资源量,则在包含第一资源标签的NM所在的节点上为AM分配计算资源。或者,若包含第一资源标签的NM所在的节点上的空闲资源量不满足AM资源要求的资源量,则标记包含第一资源标签的NM所在的节点,在包含第一资源标签的NM所在的节点上为AM累积资源,直到包含第一资源标签的NM所在的节点上的NM报告的资源量大于AM资源要求的资源量,再在包含第一资源标签的NM所在节点上为AM分配计算资源。
S505、RM发送资源响应报文给AM。
其中,资源响应报文包含分配给AM的资源标签、资源容器描述和目标节点的标识。目标节点为RM为AM分配的计算资源所在的节点。
对应地,AM接收RM发送的资源响应报文。进一步地,AM将RM为其分配的资源标签和资源容器描述转发给目标节点的NM,以使该NM验证执行许可后在目标节点上分配计算资源供AM执行当前执行阶段的子任务。
相对应地,NM接收AM转发的、RM为该AM分配的资源标签和资源容器描述;NM基于资源标签和资源容器描述,在NM所在节点分配计算资源供AM执行当前执行阶段的子任务。
另外,NM接收AM转发的资源标签和资源容器描述之后,基于YARN的资源管理方法还可以包括:NM检测资源容器描述中是否存在FPGA;若资源容器描述中存在FPGA,则在FPGA资源管理表中找到一空闲FPGA,将空闲FPGA的路径传递给当前执行的子任务,并在FPGA资源管理表中删除空闲FPGA,或者,在FPGA资源管理表中将该空闲FPGA的状态更新为非空闲状态。
进一步地,在当前执行的子任务完成之后,NM将上述空闲FPGA重新记录至FPGA资源管理表中,或者,将上述空闲FPGA在FPGA资源管理表中状态更新为空闲状态。该实施例可实现FPGA资源管理表的实时更新,以便于集群中各节点所具有的NM对FPGA的有效管理。
可选地,NM在启动时,或在启动之后,发送心跳报文给RM。该心跳报文中包含NM所在节点上的资源标签和空闲资源容器描述。相应地,RM接收集群中NM发送的心跳报文。可选地,该心跳报文中还可以包括节点上的非空闲资源容器描述,本发明实施例不对其进行限制。RM通过心跳报文获知集群中各节点的空闲资源,实现空闲资源在RM中的实时更新。
本发明实施例通过在作业报文携带基于所述扩展计算框架编写的应用程序和应用程序配置,其中,应用程序配置包含应用程序的应用程序标签和各子任务所需的资源容器描述,资源容器描述包含资源类型和资源量,需要加速的子任务的资源描述容器描述中,资源类型包括FPGA资源类型,并基于集群中所有NM的空闲资源容器描述和资源标签,为AM分配计算资源,其中,资源标签与应用程序标签一一对应,使用资源标签标注应用程序中各子任务加速所需的FPGA,经扩展后的集群资源表示模型仅与集群支持的计算框架的种类相关,与集群中运行的特定算法的种类无关,从而解决了在将FPGA这种新的计算资源(或类似FPGA的计算资源)加入到YARN中时,克服由于FPGA这种计算资源的专用性导致的YARN中资源表示维度动态扩展问题,增强YARN中资源管理的灵活性,且扩展后YARN中资源类型的可扩展性高。
图6为本发明基于YARN的资源管理装置实施例一的结构示意图。如图6所示,基于YARN的资源管理装置60包括:获取模块61、触发模块62、接收模块63、分配模块64和发送模块65。
其中,获取模块61用于获取在扩展计算框架下编写的作业报文。作业报文携带基于扩展计算框架编写的应用程序和应用程序配置。应用程序包含AM和子任务。子任务用于表征应用程序的不同执行阶段。应用程序配置包含应用程序的应用程序标签和各子任务所需的资源容器描述。资源容器描述包含资源类型和资源量。需要加速的子任务的资源描述容器描述中,资源类型包括FPGA资源类型。资源容器描述是指资源容器是采用依据集群中运行的扩展计算框架的种类进行后扩展的资源表示模型来描述的。
触发模块62用于根据AM所需的资源容器描述,在满足AM资源要求的节点上启动AM。
接收模块63用于接收AM在当前执行阶段的资源请求报文。资源请求报文包含当前执行阶段所需的资源容器描述和应用程序标签。
分配模块64用于根据资源请求报文,基于集群中所有NM的空闲资源容器描述和资源标签,为AM分配计算资源。资源标签与应用程序标签一一对应。
发送模块65用于发送资源响应报文给AM。其中,资源响应报文包含分配给AM的资源标签、资源容器描述和目标节点的标识。目标节点为装置为AM分配的计算资源所在的节点。
本实施例的装置,可以用于执行如图3所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
在上述实施例的基础上,分配模块64可以包括:映射单元(未示出),用于将资源请求报文中的应用程序标签映射到第一资源标签;分配单元(未示出),用于若在所有当前报告空闲资源的NM中找到一个包含第一资源标签的NM,则在包含第一资源标签的NM所在节点上为AM分配计算资源。
其中,分配单元可以具体用于:若包含第一资源标签的NM所在的节点上的空闲资源量满足AM资源要求的资源量,则在包含第一资源标签的NM所在的节点上为AM分配计算资源;或者,若包含第一资源标签的NM所在的节点上的空闲资源量不满足AM资源要求的资源量,则标记包含第一资源标签的NM所在的节点,在包含第一资源标签的NM所在的节点上为AM累积资源,直到包含第一资源标签的NM所在的节点上的NM报告的资源量大于AM资源要求的资源量,再在包含第一资源标签的NM所在节点上为AM分配计算资源。
进一步地,接收模块63还可以用于:接收集群中NM发送的心跳报文。该心跳报文中包含发出所述心跳报文的NM所在节点上的资源标签和空闲资源容器描述。
图7为本发明基于YARN的资源管理装置实施例二的结构示意图。本实施例提供一种基于YARN的资源管理装置,该基于YARN的资源管理装置集成于AM。如图7所示,基于YARN的资源管理装置70包括:报文生成模块71、发送模块72和接收模块73。
报文生成模块71用于在AM启动之后,生成当前执行阶段的资源请求报文。资源请求报文包含当前执行阶段将要运行的子任务所需的资源容器描述和应用程序标签。资源容器描述是指资源容器是采用依据集群中运行的扩展计算框架的种类进行后扩展的资源表示模型来描述的。
发送模块72用于发送资源请求报文给集群资源管理器RM,以使RM根据资源请求报文,基于集群中所有NM的空闲资源容器描述和资源标签,为AM分配计算资源。资源标签与应用程序标签一一对应。
接收模块73用于接收RM发送的资源响应报文。其中,资源响应报文包含分配给AM的资源标签、资源容器描述和目标节点的标识。目标节点为RM为AM分配的计算资源所在的节点。资源容器描述包含资源类型和资源量,需要加速的子任务的资源描述容器描述中,资源类型包括FPGA资源类型。
发送模块72还用于将RM为其分配的资源标签和资源容器描述转发给目标节点的NM,以使NM验证执行许可后在目标节点上分配计算资源供AM执行当前执行阶段的子任务。
本实施例的装置,可以用于执行如上述AM侧方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
在上述实施例中,报文生成模块71可具体用于:解析应用程序配置,确定应用程序标签,以及应用程序包含的子任务以及执行每个子任务所需的资源容器描述;及,根据应用程序的执行阶段,按照预设的资源表示模型向RM发送当前执行阶段需要启动的子任务的资源请求报文。其中,应用程序配置为AM所在的节点启动AM之前,节点从集群共享存储空间中获取的作业报文中携带的。作业报文携带基于扩展计算框架编写的应用程序和应用程序配置。应用程序包含AM和子任务。子任务用于表征应用程序的不同执行阶段。应用程序配置包含应用程序标签和各子任务所需的资源容器描述。
图8为本发明基于YARN的资源管理装置实施例三的结构示意图。本实施例提供一种基于YARN的资源管理装置,该基于YARN的资源管理装置集成于NM。如图8所示,基于YARN的资源管理装置80包括:接收模块81和分配模块82。
接收模块81用于接收AM转发的资源标签和资源容器描述。资源容器描述是指资源容器是采用依据集群中运行的扩展计算框架的种类进行后扩展的资源表示模型来描述的。
分配模块82用于基于资源标签和资源容器描述,在NM所在节点分配计算资源供AM执行当前执行阶段的子任务。资源容器描述包含资源类型和资源量。资源类型包括FPGA资源类型。
本实施例的装置,可以用于执行如上述NM侧方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
在上述实施例的基础上,基于YARN的资源管理装置80还可以包括:检测模块(未示出)。该检测模块用于检测资源容器描述中是否存在FPGA。
此时,分配模块82可具体用于:若资源容器描述中存在FPGA,则在FPGA资源管理表中找到一空闲FPGA,将空闲FPGA的路径传递给当前执行的子任务,并在FPGA资源管理表中删除空闲FPGA,或者,在FPGA资源管理表中将空闲FPGA的状态更新为非空闲状态。
可选地,分配模块82还可以用于:在当前执行的子任务完成之后,将空闲FPGA重新记录至FPGA资源管理表中,或者,将上述空闲FPGA在FPGA资源管理表中状态更新为空闲状态。
进一步地,基于YARN的资源管理装置80还可以包括:发送模块(未示出)。该发送模块用于发送心跳报文给集群资源管理器RM。该心跳报文中包含NM所在节点上的资源标签和空闲资源容器描述。
图9为本发明基于YARN的资源管理系统实施例一的结构示意图。如图9所示,基于YARN的资源管理系统90包括:节点91和管理节点92。
其中,管理节点92包括RM 921。RM 921包括如图6所示的基于YARN的资源管理装置60。节点91包括NM 911和AM 912。NM 911包括如图8所示的基于YARN的资源管理装置80。AM912包括如图7所示的基于YARN的资源管理装置70。
还需说明的是,图9示出一个节点91示例性说明本发明基于YARN的资源管理系统,但本发明不以此为限制,也就是说,本发明基于YARN的资源管理系统可包含多个节点,此多个节点的具体结构可参考图2所示结构中的节点1、节点2和节点3,等等。
本实施例的系统,可以用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭示的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,单元或模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (21)
1.一种基于另一种资源协调器YARN的资源管理方法,其特征在于,包括:
集群资源管理器RM获取在扩展计算框架下编写的作业报文,所述作业报文携带基于所述扩展计算框架编写的应用程序和应用程序配置,所述应用程序包含应用程序管理器AM和子任务,所述子任务用于表征所述应用程序的不同执行阶段,所述应用程序配置包含所述应用程序的应用程序标签和各子任务所需的资源容器描述,所述资源容器描述包含资源类型和资源量,所述资源容器描述是指资源容器是采用依据集群中运行的扩展计算框架的种类进行后扩展的资源表示模型来描述的,需要加速的子任务的资源容器描述中,所述资源类型包括现场可编程逻辑门阵列FPGA资源类型;
所述RM根据所述AM所需的资源容器描述,在满足所述AM资源要求的节点上启动所述AM;
所述RM接收所述AM在当前执行阶段的资源请求报文,所述资源请求报文包含当前执行阶段所需的资源容器描述和应用程序标签;
所述RM根据所述资源请求报文,基于集群中所有节点资源管理器NM的空闲资源容器描述和资源标签,为所述AM分配计算资源,资源标签与应用程序标签一一对应;
所述RM发送资源响应报文给所述AM,其中,所述资源响应报文包含分配给所述AM的资源标签、资源容器描述和目标节点的标识,所述目标节点为所述RM为所述AM分配的计算资源所在的节点。
2.根据权利要求1所述的方法,其特征在于,所述RM根据所述资源请求报文,基于集群中所有NM的空闲资源容器描述和资源标签,为所述AM分配计算资源,包括:
所述RM将所述资源请求报文中的应用程序标签映射到第一资源标签;
若所述RM在所有当前报告空闲资源的NM中找到一个包含所述第一资源标签的NM,则在包含所述第一资源标签的NM所在节点上为所述AM分配计算资源。
3.根据权利要求2所述的方法,其特征在于,所述在包含所述第一资源标签的NM所在的节点上为所述AM分配计算资源,包括:
若包含所述第一资源标签的NM所在的节点上的空闲资源量满足所述AM资源要求的资源量,则在包含所述第一资源标签的NM所在的节点上为所述AM分配计算资源;
或者,若包含所述第一资源标签的NM所在的节点上的空闲资源量不满足所述AM资源要求的资源量,则标记包含所述第一资源标签的NM所在的节点,在包含所述第一资源标签的NM所在的节点上为所述AM累积资源,直到包含所述第一资源标签的NM所在的节点上的NM报告的资源量大于所述AM资源要求的资源量,再在包含所述第一资源标签的NM所在节点上为所述AM分配计算资源。
4.根据权利要求1~3中任一项所述的方法,其特征在于,还包括:
所述RM接收集群中NM发送的心跳报文,所述心跳报文中包含发出所述心跳报文的NM所在节点上的资源标签和空闲资源容器描述。
5.一种基于另一种资源协调器YARN的资源管理方法,其特征在于,包括:
在启动之后,应用程序管理器AM生成当前执行阶段的资源请求报文,所述资源请求报文包含当前执行阶段将要运行的子任务所需的资源容器描述和应用程序标签,所述资源容器描述是指资源容器是采用依据集群中运行的扩展计算框架的种类进行后扩展的资源表示模型来描述的;
所述AM发送所述资源请求报文给集群资源管理器RM,以使所述RM根据所述资源请求报文,基于集群中所有节点资源管理器NM的空闲资源容器描述和资源标签,为所述AM分配计算资源,资源标签与应用程序标签一一对应;
所述AM接收所述RM发送的资源响应报文,其中,所述资源响应报文包含分配给所述AM的资源标签、资源容器描述和目标节点的标识,所述目标节点为所述RM为所述AM分配的计算资源所在的节点,所述资源容器描述包含资源类型和资源量,需要加速的子任务的资源容器描述中,所述资源类型包括现场可编程逻辑门阵列FPGA资源类型;
所述AM将所述RM为其分配的资源标签和资源容器描述转发给目标节点的节点资源管理器NM,以使所述NM验证执行许可后在所述目标节点上分配计算资源供所述AM执行当前执行阶段的子任务。
6.根据权利要求5所述的方法,其特征在于,所述AM生成当前执行阶段的资源请求报文,包括:
所述AM解析应用程序配置,确定所述应用程序标签,以及所述应用程序包含的子任务以及执行每个子任务所需的资源容器描述,其中,所述应用程序配置为所述AM所在的节点启动所述AM之前,所述节点从集群共享存储空间中获取的作业报文中携带的,所述作业报文携带基于扩展计算框架编写的应用程序和所述应用程序配置,所述应用程序包含所述AM和子任务,所述子任务用于表征所述应用程序的不同执行阶段,所述应用程序配置包含所述应用程序标签和各子任务所需的资源容器描述;
所述AM根据所述应用程序的执行阶段,按照预设的资源表示模型向所述RM发送当前执行阶段需要启动的子任务的资源请求报文。
7.一种基于另一种资源协调器YARN的资源管理方法,其特征在于,包括:
节点资源管理器NM接收应用程序管理器AM转发的资源标签和资源容器描述,所述资源容器描述是指资源容器是采用依据集群中运行的扩展计算框架的种类进行后扩展的资源表示模型来描述的;
所述NM基于所述资源标签和所述资源容器描述,在所述NM所在节点分配计算资源供所述AM执行当前执行阶段的子任务,资源容器描述包含资源类型和资源量,所述资源类型包括现场可编程逻辑门阵列FPGA资源类型。
8.根据权利要求7所述的方法,其特征在于,所述NM接收AM转发的资源标签和资源容器描述之后,还包括:
所述NM检测所述资源容器描述中是否存在FPGA;
若所述资源容器描述中存在FPGA,则在FPGA资源管理表中找到一空闲FPGA,将所述空闲FPGA的路径传递给当前执行的子任务,并在所述FPGA资源管理表中删除所述空闲FPGA,或者,在所述FPGA资源管理表中将所述空闲FPGA的状态更新为非空闲状态。
9.根据权利要求8所述的方法,其特征在于,还包括:
在所述当前执行的子任务完成之后,将所述空闲FPGA重新记录至所述FPGA资源管理表中,或者,将所述空闲FPGA在所述FPGA资源管理表中状态更新为空闲状态。
10.根据权利要求7~9中任一项所述的方法,其特征在于,还包括:
所述NM发送心跳报文给集群资源管理器RM,所述心跳报文中包含所述NM所在节点上的资源标签和空闲资源容器描述。
11.一种基于另一种资源协调器YARN的资源管理装置,其特征在于,包括:
获取模块,用于获取在扩展计算框架下编写的作业报文,所述作业报文携带基于所述扩展计算框架编写的应用程序和应用程序配置,所述应用程序包含应用程序管理器AM和子任务,所述子任务用于表征所述应用程序的不同执行阶段,所述应用程序配置包含所述应用程序的应用程序标签和各子任务所需的资源容器描述,所述资源容器描述包含资源类型和资源量,所述资源容器描述是指资源容器是采用依据集群中运行的扩展计算框架的种类进行后扩展的资源表示模型来描述的,需要加速的子任务的资源容器描述中,所述资源类型包括现场可编程逻辑门阵列FPGA资源类型;
触发模块,用于根据所述AM所需的资源容器描述,在满足所述AM资源要求的节点上启动所述AM;
接收模块,用于接收所述AM在当前执行阶段的资源请求报文,所述资源请求报文包含当前执行阶段所需的资源容器描述和应用程序标签;
分配模块,用于根据所述资源请求报文,基于集群中所有节点资源管理器NM的空闲资源容器描述和资源标签,为所述AM分配计算资源,资源标签与应用程序标签一一对应;
发送模块,用于发送资源响应报文给所述AM,其中,所述资源响应报文包含分配给所述AM的资源标签、资源容器描述和目标节点的标识,所述目标节点为所述装置为所述AM分配的计算资源所在的节点。
12.根据权利要求11所述的装置,其特征在于,所述分配模块包括:
映射单元,用于将所述资源请求报文中的应用程序标签映射到第一资源标签;
分配单元,用于若在所有当前报告空闲资源的NM中找到一个包含所述第一资源标签的NM,则在包含所述第一资源标签的NM所在节点上为所述AM分配计算资源。
13.根据权利要求12所述的装置,其特征在于,所述分配单元具体用于:
若包含所述第一资源标签的NM所在的节点上的空闲资源量满足所述AM资源要求的资源量,则在包含所述第一资源标签的NM所在的节点上为所述AM分配计算资源;
或者,若包含所述第一资源标签的NM所在的节点上的空闲资源量不满足所述AM资源要求的资源量,则标记包含所述第一资源标签的NM所在的节点,在包含所述第一资源标签的NM所在的节点上为所述AM累积资源,直到包含所述第一资源标签的NM所在的节点上的NM报告的资源量大于所述AM资源要求的资源量,再在包含所述第一资源标签的NM所在节点上为所述AM分配计算资源。
14.根据权利要求11~13中任一项所述的装置,其特征在于,所述接收模块还用于:
接收集群中NM发送的心跳报文,所述心跳报文中包含发出所述心跳报文的NM所在节点上的资源标签和空闲资源容器描述。
15.一种基于另一种资源协调器YARN的资源管理装置,其特征在于,集成于应用程序管理器AM,包括:
报文生成模块,用于在所述AM启动之后,生成当前执行阶段的资源请求报文,所述资源请求报文包含当前执行阶段将要运行的子任务所需的资源容器描述和应用程序标签,所述资源容器描述是指资源容器是采用依据集群中运行的扩展计算框架的种类进行后扩展的资源表示模型来描述的;
发送模块,用于发送所述资源请求报文给集群资源管理器RM,以使所述RM根据所述资源请求报文,基于集群中所有节点资源管理器NM的空闲资源容器描述和资源标签,为所述AM分配计算资源,资源标签与应用程序标签一一对应;
接收模块,用于接收所述RM发送的资源响应报文,其中,所述资源响应报文包含分配给所述AM的资源标签、资源容器描述和目标节点的标识,所述目标节点为所述RM为所述AM分配的计算资源所在的节点,所述资源容器描述包含资源类型和资源量,需要加速的子任务的资源容器描述中,所述资源类型包括现场可编程逻辑门阵列FPGA资源类型;
所述发送模块,还用于将所述RM为其分配的资源标签和资源容器描述转发给目标节点的节点资源管理器NM,以使所述NM验证执行许可后在所述目标节点上分配计算资源供所述AM执行当前执行阶段的子任务。
16.根据权利要求15所述的装置,其特征在于,所述报文生成模块具体用于:
解析应用程序配置,确定所述应用程序标签,以及所述应用程序包含的子任务以及执行每个子任务所需的资源容器描述,其中,所述应用程序配置为所述AM所在的节点启动所述AM之前,所述节点从集群共享存储空间中获取的作业报文中携带的,所述作业报文携带基于扩展计算框架编写的应用程序和所述应用程序配置,所述应用程序包含所述AM和子任务,所述子任务用于表征所述应用程序的不同执行阶段,所述应用程序配置包含所述应用程序标签和各子任务所需的资源容器描述;
根据所述应用程序的执行阶段,按照预设的资源表示模型向所述RM发送当前执行阶段需要启动的子任务的资源请求报文。
17.一种基于另一种资源协调器YARN的资源管理装置,其特征在于,集成于节点资源管理器NM,包括:
接收模块,用于接收应用程序管理器AM转发的资源标签和资源容器描述,所述资源容器描述是指资源容器是采用依据集群中运行的扩展计算框架的种类进行后扩展的资源表示模型来描述的;
分配模块,用于基于所述资源标签和所述资源容器描述,在所述NM所在节点分配计算资源供所述AM执行当前执行阶段的子任务,资源容器描述包含资源类型和资源量,所述资源类型包括现场可编程逻辑门阵列FPGA资源类型。
18.根据权利要求17所述的装置,其特征在于,还包括:
检测模块,用于检测所述资源容器描述中是否存在所述FPGA;
所述分配模块,具体用于若所述资源容器描述中存在FPGA,则在FPGA资源管理表中找到一空闲FPGA,将所述空闲FPGA的路径传递给当前执行的子任务,并在所述FPGA资源管理表中删除所述空闲FPGA,或者,在所述FPGA资源管理表中将所述空闲FPGA的状态更新为非空闲状态。
19.根据权利要求18所述的装置,其特征在于,所述分配模块还用于:
在所述当前执行的子任务完成之后,将所述空闲FPGA重新记录至所述FPGA资源管理表中,或者,将所述空闲FPGA在所述FPGA资源管理表中状态更新为空闲状态。
20.根据权利要求17~19中任一项所述的装置,其特征在于,还包括:
发送模块,用于发送心跳报文给集群资源管理器RM,所述心跳报文中包含所述NM所在节点上的资源标签和空闲资源容器描述。
21.一种基于另一种资源协调器YARN的资源管理系统,其特征在于,包括:节点和管理节点,其中,
所述管理节点包括集群资源管理器RM,所述RM包括如权利要求11~14中任一项所述的装置;
所述节点包括节点资源管理器NM和应用程序管理器AM,所述NM包括如权利要求17~20中任一项所述的装置,所述AM包括如权利要求15或16所述的装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510864316.XA CN105512083B (zh) | 2015-11-30 | 2015-11-30 | 基于yarn的资源管理方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510864316.XA CN105512083B (zh) | 2015-11-30 | 2015-11-30 | 基于yarn的资源管理方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105512083A CN105512083A (zh) | 2016-04-20 |
CN105512083B true CN105512083B (zh) | 2018-09-21 |
Family
ID=55720078
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510864316.XA Active CN105512083B (zh) | 2015-11-30 | 2015-11-30 | 基于yarn的资源管理方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105512083B (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107436806A (zh) * | 2016-05-27 | 2017-12-05 | 苏宁云商集团股份有限公司 | 一种资源调度方法及系统 |
CN107483364A (zh) * | 2016-06-08 | 2017-12-15 | 国家计算机网络与信息安全管理中心 | 一种Hadoop Yarn网络带宽资源调度、隔离方法和装置 |
CN106708622B (zh) * | 2016-07-18 | 2020-06-02 | 腾讯科技(深圳)有限公司 | 集群资源处理方法和系统、资源处理集群 |
CN107665143B (zh) * | 2016-07-27 | 2020-10-16 | 华为技术有限公司 | 资源管理方法、装置及系统 |
WO2018045541A1 (zh) * | 2016-09-08 | 2018-03-15 | 华为技术有限公司 | 一种容器分配的优化方法及处理设备 |
CN106534266B (zh) * | 2016-10-19 | 2018-04-03 | 南京邮电大学 | 一种基于Agent的多环境应用并行的云平台及其工作方法 |
CN106817411B (zh) * | 2016-12-28 | 2020-06-02 | 华为技术有限公司 | 业务访问请求的处理方法和相关设备 |
CN107203424A (zh) * | 2017-04-17 | 2017-09-26 | 北京奇虎科技有限公司 | 一种在分布式集群中调度深度学习作业的方法和装置 |
CN109144710B (zh) * | 2017-06-16 | 2020-12-04 | 中国移动通信有限公司研究院 | 资源调度方法、装置及计算机可读存储介质 |
US11816496B2 (en) | 2017-08-31 | 2023-11-14 | Micro Focus Llc | Managing containers using attribute/value pairs |
US11537442B2 (en) * | 2018-01-23 | 2022-12-27 | Partec Cluster Competence Center Gmbh | Application runtime determined dynamical allocation of heterogeneous compute resources |
CN111475277A (zh) * | 2019-01-23 | 2020-07-31 | 阿里巴巴集团控股有限公司 | 一种资源分配方法、系统、设备及机器可读存储介质 |
CN110362409A (zh) * | 2019-07-19 | 2019-10-22 | 深圳前海微众银行股份有限公司 | 基于多种类型的资源分配方法、装置、设备及存储介质 |
CN112286673B (zh) * | 2019-07-22 | 2024-05-24 | 北京车和家信息技术有限公司 | 一种节点资源调配方法及装置 |
CN113127289B (zh) * | 2019-12-31 | 2024-04-12 | 奇安信科技集团股份有限公司 | 一种基于yarn集群的资源管理方法、计算机设备和存储介质 |
CN111813545B (zh) * | 2020-06-29 | 2024-09-24 | 北京火山引擎科技有限公司 | 一种资源配置方法、装置、介质和设备 |
CN113391906B (zh) * | 2021-06-25 | 2024-03-01 | 北京字节跳动网络技术有限公司 | 作业更新方法、装置、计算机设备及资源管理系统 |
CN117693738A (zh) * | 2021-07-15 | 2024-03-12 | 上海诺基亚贝尔股份有限公司 | 计算机环境中加速服务的部署 |
CN114840125B (zh) * | 2022-03-30 | 2024-04-26 | 曙光信息产业(北京)有限公司 | 设备资源配置、管理方法、装置、设备、介质和程序产品 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8176212B1 (en) * | 2009-08-18 | 2012-05-08 | Quickflex, Inc. | Method and system for hierarchical and joinable behavior containers for reconfigurable computing |
CN103577266A (zh) * | 2012-07-31 | 2014-02-12 | 国际商业机器公司 | 用于对现场可编程门阵列资源进行分配的方法及系统 |
CN103593242A (zh) * | 2013-10-15 | 2014-02-19 | 北京航空航天大学 | 基于Yarn框架的资源共享控制系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7506297B2 (en) * | 2004-06-15 | 2009-03-17 | University Of North Carolina At Charlotte | Methodology for scheduling, partitioning and mapping computational tasks onto scalable, high performance, hybrid FPGA networks |
-
2015
- 2015-11-30 CN CN201510864316.XA patent/CN105512083B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8176212B1 (en) * | 2009-08-18 | 2012-05-08 | Quickflex, Inc. | Method and system for hierarchical and joinable behavior containers for reconfigurable computing |
CN103577266A (zh) * | 2012-07-31 | 2014-02-12 | 国际商业机器公司 | 用于对现场可编程门阵列资源进行分配的方法及系统 |
CN103593242A (zh) * | 2013-10-15 | 2014-02-19 | 北京航空航天大学 | 基于Yarn框架的资源共享控制系统 |
Non-Patent Citations (1)
Title |
---|
基于YARN集群的计算加速部件扩展支持;李钦,朱延超等;《2014全国高性能计算学术年会论文集》;20141231;第504-511页 * |
Also Published As
Publication number | Publication date |
---|---|
CN105512083A (zh) | 2016-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105512083B (zh) | 基于yarn的资源管理方法、装置及系统 | |
WO2020108303A1 (zh) | 一种基于异构计算的任务处理方法及软硬件框架系统 | |
CN109684065B (zh) | 一种资源调度方法、装置及系统 | |
CN108351805B (zh) | 计算图的基于流的加速器处理 | |
CN104036451B (zh) | 基于多图形处理器的模型并行处理方法及装置 | |
KR101893982B1 (ko) | 분산 처리 시스템, 분산 처리 시스템의 스케줄러 노드 및 스케줄 방법, 및 이를 위한 프로그램 생성 장치 | |
CN105450618B (zh) | 一种api服务器处理大数据的运算方法及其系统 | |
US9501318B2 (en) | Scheduling and execution of tasks based on resource availability | |
CN111488205B (zh) | 面向异构硬件架构的调度方法和调度系统 | |
US9367359B2 (en) | Optimized resource management for map/reduce computing | |
CN115061810A (zh) | 处理计算图 | |
CN107025139A (zh) | 一种基于云计算的高性能计算调度框架 | |
Jangiti et al. | Scalable and direct vector bin-packing heuristic based on residual resource ratios for virtual machine placement in cloud data centers | |
CN102096596A (zh) | 一种基于虚拟机内存模板的云计算服务Cache系统 | |
CN107450977A (zh) | 基于yarn的面向gpgpu集群的资源管理调度方法 | |
CN114327844A (zh) | 内存分配方法、相关设备及计算机可读存储介质 | |
CN103401939A (zh) | 一种采用混合调度策略的负载均衡方法 | |
CN110050261A (zh) | 计算资源分配 | |
US20210390405A1 (en) | Microservice-based training systems in heterogeneous graphic processor unit (gpu) cluster and operating method thereof | |
Orellana et al. | FPGA‐Aware Scheduling Strategies at Hypervisor Level in Cloud Environments | |
CN109976873A (zh) | 容器化分布式计算框架的调度方案获取方法及调度方法 | |
CN105335135B (zh) | 数据处理方法和中心节点 | |
CN111522637B (zh) | 一种基于成本效益的storm任务调度方法 | |
WO2023207630A1 (zh) | 一种任务求解方法及其装置 | |
CN105653347A (zh) | 一种服务器、资源管理方法及虚拟机管理器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20211228 Address after: 450046 Floor 9, building 1, Zhengshang Boya Plaza, Longzihu wisdom Island, Zhengdong New Area, Zhengzhou City, Henan Province Patentee after: xFusion Digital Technologies Co., Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |