基于yarn的资源管理方法、装置及系统的制作方法_4

文档序号:9750763阅读:来源:国知局
定的需要FPGA加速的任务阶 段,确定各子任务的资源需求。例如在运行FPGA加速的MapReduce应用时,根据应用程序配 置中设定的Map任务和Reduce任务是否需要FPGA加速的配置,来确定Map任务和Reduce任务 的资源需求。如果Map任务需要FPGA加速而Reduce任务不需要FPGA加速,则子任务的资源需 求如表5所示。
[0103] 表5
[0104]
[0105] 对于YARN原生计算框架下编写的应用程序,该应用程序运行时只申请CPU和内存 二维资源。AM和RM之间的资源请求报文是采用序列化报文在网络上传输。本发明实施例在 资源请求报文序列化和反序列化时使用一种向后兼容的序列化技术,使得RM接收到的资源 请求报文仅携带原生计算框架的二维资源时,自动将其扩展为多维资源表示。对于原有原 生计算框架发出的资源请求报文中不包含的资源量描述字段,其代表的资源量直接被视作 0,本发明实施例中RM和原生AM之间的资源请求交互如图4和图5所示。
[0106]其中,图4示出原生AM向本发明实施例中RM请求资源的示意图。具体地,原生AM向 本发明实施例中RM发送资源请求报文,该资源请求报文中携带的资源容器描述包括CPU和 内存,CPU与内存的资源量分别为2和1;本发明实施例中RM接收该资源请求报文之后,通过 向后兼容的序列化技术,将资源容器描述扩展为包含CPU、内存和AccUAccl、……、AccN等, 其中,CPU与内存的资源量不发生改变,仍为2和1;A CC1、ACC1、……、AccN的资源量为0。
[0107] 图5示出本发明实施例中RM向原生AM响应其请求资源的示意图。具体地,本发明实 施例中RM向原生AM发送资源响应报文,该资源响应报文中携带的资源容器描述包括CPU、内 存和Accl、Accl、……、AccN,其中,CPU与内存的资源量分别为2和l,Accl、Accl、……、AccN 的资源量为〇;原生AMM接收该资源响应报文之后,通过向前兼容的序列化技术,将资源容器 描述修改为包含CHJ和内存,其中,CPU与内存的资源量不发生改变,仍为2和1。
[0108] 参考图4和图5,其中,Accl、Acc2、-_、AccN表示固化有不同逻辑算法的FPGA。
[0109]目前,YARN利用Protobuf来序列化资源请求报文。Protobuf是一种支持报文格式 向后兼容的序列化技术,本发明实施例只需在RM中对资源请求报文序列化和对资源响应报 文反序列化方式进行单方面的升级,扩充表示其他资源量的字段即可兼容原生计算框架。 原生计算框架的资源请求报文中未包含的资源量描述字段,在RM被自动视为0(表示不需要 该资源)。冊接收到来自扩展计算框架的含有其他资源容器描述字段的资源请求报文时,资 源请求报文中描述的资源量能够被正常获取。
[0110] 此外,本发明实施例在RM中对于原生计算框架提交的作业报文,如果作业客户端 没有指定该作业报文的提交资源队列,则统一放入"任意"资源队列中调度。该资源队列中 的子任务默认可以调度到集群中的任意一个节点上运行。
[0111] 接下来,AM发送资源请求报文给RM,以使RM根据资源请求报文,基于集群中所有NM 的空闲资源容器描述和资源标签,为AM分配计算资源。其中,资源标签与应用程序标签一一 对应。
[0112] S503、RM接收AM在当前执行阶段的资源请求报文。
[0113] 例如,参考图2,RM可接收节点1中AM1,AM1例如为Storm AM,在当前执行阶段的资 源请求报文,或者,节点3中AM2,AM2例如为MR AM,在当前执行阶段的资源请求报文。
[0114] S504、RM根据资源请求报文,基于集群中所有Ml的空闲资源容器描述和资源标签, 为AM分配计算资源。
[0115] 具体地,该步骤可以包括:RM将资源请求报文中的应用程序标签映射到第一资源 标签;若RM在所有有当前报告空闲资源的NM中找到一个包含所述第一资源标签的NM,则在 包含第一资源标签的NM所在节点上为AM分配计算资源。
[0116]其中,在包含第一资源标签的匪所在节点上为AM分配计算资源,包括:若包含第一 资源标签的NM所在的节点上的空闲资源量满足AM资源要求的资源量,则在包含第一资源标 签的匪所在的节点上为AM分配计算资源。或者,若包含第一资源标签的匪所在的节点上的 空闲资源量不满足AM资源要求的资源量,则标记包含第一资源标签的NM所在的节点,在包 含第一资源标签的NM所在的节点上为AM累积资源,直到包含第一资源标签的NM所在的节点 上的NM报告的资源量大于AM资源要求的资源量,再在包含第一资源标签的NM所在节点上为 AM分配计算资源。
[0117] S505、RM发送资源响应报文给AM。
[0118] 其中,资源响应报文包含分配给AM的资源标签、资源容器描述和目标节点的标识。 目标节点为RM为AM分配的计算资源所在的节点。
[0119] 对应地,AM接收RM发送的资源响应报文。进一步地,AM将RM为其分配的资源标签和 资源容器描述转发给目标节点的匪,以使该NM验证执行许可后在目标节点上分配计算资源 供AM执行当前执行阶段的子任务。
[0120]相对应地,NM接收AM转发的、RM为该AM分配的资源标签和资源容器描述;匪基于资 源标签和资源容器描述,在NM所在节点分配计算资源供AM执行当前执行阶段的子任务。
[0121] 另外,匪接收AM转发的资源标签和资源容器描述之后,基于YARN的资源管理方法 还可以包括:匪检测资源容器描述中是否存在FPGA;若资源容器描述中存在FPGA,则在FPGA 资源管理表中找到一空闲FPGA,将空闲FPGA的路径传递给当前执行的子任务,并在FPGA资 源管理表中删除空闲FPGA,或者,在FPGA资源管理表中将该空闲FPGA的状态更新为非空闲 状态。
[0122] 进一步地,在当前执行的子任务完成之后,匪将上述空闲FPGA重新记录至FPGA资 源管理表中,或者,将上述空闲FPGA在FPGA资源管理表中状态更新为空闲状态。该实施例可 实现FPGA资源管理表的实时更新,以便于集群中各节点所具有的NM对FPGA的有效管理。
[0123] 可选地,匪在启动时,或在启动之后,发送心跳报文给RM。该心跳报文中包含匪所 在节点上的资源标签和空闲资源容器描述。相应地,RM接收集群中Ml发送的心跳报文。可选 地,该心跳报文中还可以包括节点上的非空闲资源容器描述,本发明实施例不对其进行限 制。RM通过心跳报文获知集群中各节点的空闲资源,实现空闲资源在RM中的实时更新。
[0124] 本发明实施例通过在作业报文携带基于所述扩展计算框架编写的应用程序和应 用程序配置,其中,应用程序配置包含应用程序的应用程序标签和各子任务所需的资源容 器描述,资源容器描述包含资源类型和资源量,需要加速的子任务的资源描述容器描述中, 资源类型包括FPGA资源类型,并基于集群中所有匪的空闲资源容器描述和资源标签,为AM 分配计算资源,其中,资源标签与应用程序标签一一对应,使用资源标签标注应用程序中各 子任务加速所需的FPGA,经扩展后的集群资源表示模型仅与集群支持的计算框架的种类相 关,与集群中运行的特定算法的种类无关,从而解决了在将FPGA这种新的计算资源(或类似 FPGA的计算资源)加入到YARN中时,克服由于FPGA这种计算资源的专用性导致的YARN中资 源表示维度动态扩展问题,增强YARN中资源管理的灵活性,且扩展后YARN中资源类型的可 扩展性高。
[0125] 图6为本发明基于YARN的资源管理装置实施例一的结构示意图。如图6所示,基于 YARN的资源管理装置60包括:获取模块61、触发模块62、接收模块63、分配模块64和发送模 块65。
[0126] 其中,获取模块61用于获取在扩展计算框架下编写的作业报文。作业报文携带基 于扩展计算框架编写的应用程序和应用程序配置。应用程序包含AM和子任务。子任务用于 表征应用程序的不同执行阶段。应用程序配置包含应用程序的应用程序标签和各子任务所 需的资源容器描述。资源容器描述包含资源类型和资源量。需要加速的子任务的资源描述 容器描述中,资源类型包括FPGA资源类型。资源容器描述是指资源容器是采用依据集群中 运行的扩展计算框架的种类进行后扩展的资源表示模型来描述的。
[0127] 触发模块62用于根据AM所需的资源容器描述,在满足AM资源要求的节点上启动 AM〇
[0128] 接收模块63用于接收AM在当前执行阶段的资源请求报文。资源请求报文包含当前 执行阶段所需的资源容器描述和应用程序标签。
[0129] 分配模块64用于根据资源请求报文,基于集群中所有匪的空闲资源容器描述和资 源标签,为AM分配计算资源。资源标签与应用程序标签一一对应。
[0130] 发送模块65用于发送资源响应报文给AM。其中,资源响应报文包含分配给AM的资 源标签、资源容器描述和目标节点的标识。目标节点为装置为AM分配的计算资源所在的节 点。
[0131] 本实施例的装置,可以用于执行如图3所示方法实施例的技术方案,其实现原理和 技术效果类似,此处不再赘述。
[0132] 在上述实施例的基础上,分配模块64可以包括:映射单元(未示出),用于将资源请 求报文中的应用程序标签映射到第一资源标签;分配单元(未示出),用于若在所有当前报 告空闲资源的匪中找到一个包含第一资源标签的匪,则在包含第一资源标签的匪所在节点 上为AM分配计算资源。
[0133] 其中,分配单元可以具体用于:若包含第一资源标签的匪所在的节点上的空闲资 源量满足AM资源要求的资源量,则在包含第一资源标签的NM所在的节点上为AM分配计算资 源;或者,若包含第一资源标签的匪所在的节点上的空闲资源量不满足AM资源要求的资源 量,则标记包含第一资源标签的匪所在的节点,在包含第一资源标签的匪所在的节点上为 AM累积资源,直到包含第一资源标签的NM所在的节点上的NM报告的资源量大于AM资源要求 的资源量,再在包含第一资源标签的NM所在节点上为AM分配计算资源。
[0134] 进一步地,接收模块63还可以用于:接收集群中匪发送的心跳报文。该心跳报文中 包含发出所述心跳报文的NM所在节点
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1