一种资源分配的方法及装置制造方法及图纸

技术编号:26694019 阅读:20 留言:0更新日期:2020-12-12 02:50
本公开涉及计算机网络技术领域,尤其涉及一种资源分配的方法及装置,该方法包括:接收针对目标作业的资源分配请求;根据所述资源分配请求,确定用于运行所述目标作业的容器大小;在根据所述容器大小,确定所述目标作业对应的至少一个容器存在资源预留需求时,获取当前已预留资源的节点信息;所述节点信息用于指示为容器预留了资源的节点;根据所述当前已预留资源的节点信息,确定针对所述至少一个容器的资源预留结果。本公开实施例通过对预留资源的节点进行相关限制,可以提升集群资源的利用率,避免节点资源的浪费。

【技术实现步骤摘要】
一种资源分配的方法及装置
本公开涉及计算机网络
,具体而言,涉及一种资源分配的方法及装置。
技术介绍
HadoopYARN是一种集群资源管理和调度平台,其中Hadoop是分布式系统基础架构,YARN(YetAnotherResourceNegotiator)是资源调度器,当用户提交作业时,YARN根据策略按序将资源以资源容器(container)的形式分配给用户作业,但当用户作业所需的单个容器的大小较大、而当前节点上的空闲资源都不足以分配时,会导致为用户作业分配资源失败,从而导致该类作业极难拿到资源。因此YARN使用预留策略,当较大的container在节点上尝试分配失败后,会在该节点上为该容器预留所需的资源。但是,采用上述预留机制可能会造成节点上大部分资源因预留而浪费,造成集群资源利用率过低。
技术实现思路
有鉴于此,本公开实施例至少提供一种资源分配的方法及装置。本公开主要包括以下几个方面:第一方面,本公开实施例提供一种资源分配的方法,所述资源分配的方法包括:接收针对目标作业的资源分配请求;根据所述资源分配请求,确定用于运行所述目标作业的至少一个容器大小;在根据所述容器大小,确定所述目标作业对应的至少一个容器存在资源预留需求时,获取当前已预留资源的节点信息;所述节点信息用于指示为容器预留了资源的节点;根据所述当前已预留资源的节点信息,确定针对所述至少一个容器的资源预留结果。在一种可能的实施方式中,根据所述资源分配请求,确定用于运行所述目标作业的至少一个容器大小,包括:获取所述资源分配请求中携带的容器信息,所述容器信息中包含所述目标作业所需的容器大小;或者,根据所述目标作业所需的总资源信息,确定所述目标作业所需的容器大小。在一种可能的实施方式中,根据所述容器大小,确定所述目标作业对应的至少一个容器存在资源预留需求,包括:获取所述目标作业所属业务类型对应的各节点的剩余资源信息;针对所述目标作业,根据各节点的剩余资源信息,以及该目标作业所需的所述容器大小,判断当前是否存在任一节点的剩余资源满足该目标作业的需求,若不存在,则确定该目标作业对应的容器存在资源预留需求。在一种可能的实施方式中,根据所述当前已预留资源的节点信息,确定针对所述至少一个容器的资源预留结果,包括:将所述至少一个容器中的每个容器作为当前容器,执行:根据所述当前已预留资源的节点信息,确定所述目标作业所属业务类型对应的节点集合中已预留资源的第一节点数量;根据所述第一节点数量与所述节点集合对应的节点总数量,确定是否为当前容器预留资源;响应于为当前容器预留资源后,更新所述第一节点数量,并存储与当前容器对应的预留资源信息。在一种可能的实施方式中,根据所述当前已预留资源的节点信息,确定针对所述至少一个容器的资源预留结果,包括:将所述至少一个容器中的每个容器作为当前容器,执行:根据所述当前已预留资源的节点信息,确定当前已经为所述目标作业预留资源的第二节点数量;根据所述第二节点数量,与所述目标作业所属业务类型对应的节点集合中节点总数量,确定是否为当前容器预留资源,并在确定为当前容器预留资源后,更新所述第二节点数量,并存储与当前容器对应的预留资源信息。在一种可能的实施方式中,根据所述当前已预留资源的节点信息,确定针对所述至少一个容器的资源预留结果,包括:将所述至少一个容器中的每个容器作为当前容器,执行:根据所述当前已预留资源的节点信息,确定所述目标作业所属业务类型对应的节点集合中已预留资源的第一节点数量,以及当前已经为所述目标作业预留资源的第二节点数量;根据所述第一节点数量、所述第二节点数量、以及所述节点集合对应的节点总数量,确定是否为当前容器预留资源,并在确定为当前容器预留资源后,更新所述第一节点数量和所述第二节点数量,并存储与当前容器对应的预留资源信息。在一种可能的实施方式中,确定为当前容器预留资源,包括:在确定当前存在任一节点对应的已预留资源的容器数量小于设定阈值后,确定为当前容器预留资源。第二方面,本公开实施例还提供一种资源分配的装置,所述资源分配的装置包括:接收模块,用于接收针对目标作业的资源分配请求;容器确定模块,用于根据所述资源分配请求,确定用于运行所述目标作业的至少一个容器大小;获取模块,用于在根据所述容器大小,确定所述目标作业对应的至少一个容器存在资源预留需求时,获取当前已预留资源的节点信息;所述节点信息用于指示为容器预留了资源的节点;资源预留结果确定模块,用于根据所述当前已预留资源的节点信息,确定针对所述至少一个容器的资源预留结果。在一种可能的实施方式中,所述容器确定模块,具体用于:获取所述资源分配请求中携带的容器信息,所述容器信息中包含所述目标作业所需的容器大小;或者,根据所述目标作业所需的总资源信息,确定所述目标作业所需的容器大小。在一种可能的实施方式中,所述获取模块,具体用于:获取所述目标作业所属业务类型对应的各节点的剩余资源信息;针对所述目标作业,根据各节点的剩余资源信息,以及该目标作业所需的所述容器大小,判断当前是否存在任一节点的剩余资源满足该目标作业的需求,若不存在,则确定该目标作业对应的容器存在资源预留需求。在一种可能的实施方式中,所述资源预留结果确定模块,具体用于:将所述至少一个容器中的每个容器作为当前容器,执行:根据所述当前已预留资源的节点信息,确定所述目标作业所属业务类型对应的节点集合中已预留资源的第一节点数量;根据所述第一节点数量与所述节点集合对应的节点总数量,确定是否为当前容器预留资源;响应于为当前容器预留资源,更新所述第一节点数量,并存储与当前容器对应的预留资源信息。在一种可能的实施方式中,所述资源预留结果确定模块,具体用于:将所述至少一个容器中的每个容器作为当前容器,执行:根据所述当前已预留资源的节点信息,确定当前已经为所述目标作业预留资源的第二节点数量;根据所述第二节点数量,与所述目标作业所属业务类型对应的节点集合中节点总数量,确定是否为当前容器预留资源,并在确定为当前容器预留资源后,更新所述第二节点数量,并存储与当前容器对应的预留资源信息。在一种可能的实施方式中,所述资源预留结果确定模块,还具体用于:将所述至少一个容器中的每个容器作为当前容器,执行:根据所述当前已预留资源的节点信息,确定所述目标作业所属业务类型对应的节点集合中已预留资源的第一节点数量,以及当前已经为所述目标作业预留资源的第二节点数量;根据所述第一节点数量、所述第二节点数量、以及所述节点集合对应的节点总数量,确定是否为当前容器预留资源,并在确定为当前容器预留资源后,更新所述第一节点数量和所述第二节点数量,并存储与当前容器对应的预留资源信息。在一种可能的实施方式中,所述资源预留结本文档来自技高网...

【技术保护点】
1.一种资源分配的方法,其特征在于,所述方法包括:/n接收针对目标作业的资源分配请求;/n根据所述资源分配请求,确定用于运行所述目标作业的至少一个容器大小;/n在根据所述容器大小,确定所述目标作业对应的至少一个容器存在资源预留需求时,获取当前已预留资源的节点信息;所述节点信息用于指示为容器预留了资源的节点;/n根据所述当前已预留资源的节点信息,确定针对所述至少一个容器的资源预留结果。/n

【技术特征摘要】
1.一种资源分配的方法,其特征在于,所述方法包括:
接收针对目标作业的资源分配请求;
根据所述资源分配请求,确定用于运行所述目标作业的至少一个容器大小;
在根据所述容器大小,确定所述目标作业对应的至少一个容器存在资源预留需求时,获取当前已预留资源的节点信息;所述节点信息用于指示为容器预留了资源的节点;
根据所述当前已预留资源的节点信息,确定针对所述至少一个容器的资源预留结果。


2.根据权利要求1所述的方法,其特征在于,根据所述资源分配请求,确定用于运行所述目标作业的至少一个容器大小,包括:
获取所述资源分配请求中携带的容器信息,所述容器信息中包含所述目标作业所需的容器大小;或者,
根据所述目标作业所需的总资源信息,确定所述目标作业所需的容器大小。


3.根据权利要求1所述的方法,其特征在于,根据所述容器大小,确定所述目标作业对应的至少一个容器存在资源预留需求,包括:
获取所述目标作业所属业务类型对应的各节点的剩余资源信息;
针对所述目标作业,根据各节点的剩余资源信息,以及该目标作业所需的所述容器大小,判断当前是否存在任一节点的剩余资源满足该目标作业的需求,若不存在,则确定该目标作业对应的容器存在资源预留需求。


4.根据权利要求1所述的方法,其特征在于,根据所述当前已预留资源的节点信息,确定针对所述至少一个容器的资源预留结果,包括:
将所述至少一个容器中的每个容器作为当前容器,执行:
根据所述当前已预留资源的节点信息,确定所述目标作业所属业务类型对应的节点集合中已预留资源的第一节点数量;
根据所述第一节点数量与所述节点集合对应的节点总数量,确定是否为当前容器预留资源;
响应于为当前容器预留资源,更新所述第一节点数量,并存储与当前容器对应的预留资源信息。


5.根据权利要求1所述的方法,其特征在于,根据所述当前已预留资源的节点信息,确定针对所述至少一个容器的资源预留结果,包括:
将所述至少一个容器中的每个容器作为当前容器,执行:
根据所述当前已预留资源的节点信息,确定当前已经为所述目标作业预留资源的第二节点数量;
根据所述第二节...

【专利技术属性】
技术研发人员:李亚坤姜亦朋辛朝晖
申请(专利权)人:北京字节跳动网络技术有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1