掌桥专利:专业的专利平台
掌桥专利
首页

资源分配方法、装置、设备及计算机存储介质

文献发布时间:2023-06-19 09:40:06


资源分配方法、装置、设备及计算机存储介质

技术领域

本申请属于计算机技术领域,尤其涉及一种资源分配方法、装置、设备及计算机存储介质。

背景技术

随着信息技术的发展和互联网的迅速普及,另一种资源协调者(Yet AnotherResource Negotiator,简称YARN)的资源分配模型或资源分配系统在各种业务场景的应用越来越广泛。

YARN资源分配模型或系统主要用于对用户提交的作业或任务进行资源分配和调度执行,比如将用户提交的任务分配到不同的资源容器(Resource Container,简称Container)中,再由不同的资源容器共同完成用户提交的任务。

经本申请的发明人发现,当前YARN资源分配模型或系统存在资源分配不合理的问题,进而还存在因资源分配不合理导致的资源浪费严重、任务处理速度慢及耗时长的问题。

发明内容

本申请实施例提供一种资源分配方法、装置、设备及计算机存储介质,能够解决当前YARN资源分配模型或系统存在的资源分配不合理的问题,进而还能够解决因资源分配不合理导致的资源浪费严重、任务处理速度慢及耗时长的问题。

第一方面,本申请实施例提供一种资源分配方法,应用于另一种资源协调者YARN的模型或系统,方法可以包括:

在接收到第一任务的情况下,获取所述第一任务的属性信息;

根据所述属性信息,从预设的多个等级的资源容器中确定出与所述属性信息对应的目标等级的第一资源容器;其中,不同等级的资源容器包含的资源容量不同;

利用所述第一资源容器执行所述第一任务。

在一些实施例中,当所述第一任务为至少一个映射map任务时,所述根据所述属性信息,从预设的多个等级的资源容器中确定出与所述属性信息对应的目标等级的第一资源容器,具体可以包括:

根据所述map任务的数量和每个所述map任务的算法复杂度,从预设的多个等级的资源容器中确定出所述目标等级的第一资源容器。

在一些实施例中,当所述第一任务为至少一个归约reduce任务时,所述根据所述属性信息,从预设的多个等级的资源容器中确定出与所述属性信息对应的目标等级的第一资源容器,具体可以包括:

根据每个所述reduce任务的数据量和每个所述reduce任务的算法复杂度,从预设的多个等级的资源容器中确定出所述目标等级的第一资源容器。

当所述第一任务为至少一个映射map任务时,所述利用所述第一资源容器执行所述第一任务,具体可以包括:

监测每个所述第一资源容器执行对应所述map任务的情况;

当第二资源容器的数量或目标比例达到预设阈值时,确定所述第二资源容器执行所述map任务所需的平均时间;所述第二资源容器为已执行完对应所述map任务的所述第一资源容器;所述目标比例为已执行完对应所述map任务的所述第一资源容器所占全部所述第一资源容器的比例;

确定当前时刻和第三资源容器的执行时刻,以及所述当前时刻与所述执行时刻的第一差值;所述第三资源容器为第i个未执行完对应所述map任务的所述第一资源容器,i为正整数;

当所述第一差值大于所述平均时间的预设第一倍数时,获取目标资源容器;其中,所述目标资源容器包含的资源容量大于所述第三资源容器;

利用所述目标资源容器执行目标map任务,所述目标map任务为所述第三资源容器执行的所述map任务。

在一些实施例中,在所述利用所述目标资源容器执行目标map任务的过程中,所述方法还可以包括:

当所述目标资源容器执行所述目标map任务的进度超过所述第三资源容器执行所述目标map任务的进度时,停止所述第三资源容器执行所述目标map任务。

在一些实施例中,所述根据每个所述reduce任务的数据量和每个所述reduce任务的算法复杂度,从预设的多个等级的资源容器中确定出所述目标等级的第一资源容器,具体可以包括:

当第j个所述reduce任务的数据量或算法复杂度大于或等于预设基准值的预设第二倍数时,确定大于或等于基准资源容量的所述预设第二倍数的资源容器为执行第j个所述reduce任务的所述第一资源容器;所述基准资源容量为所述预设基准值对应的资源容器的资源容量,j为正整数;

当第p个所述reduce任务的数据量或算法复杂度小于所述预设基准值时,确定小于所述基准资源容量的资源容器为执行第p个所述reduce任务的所述第一资源容器,p≠j且p为正整数。

在一些实施例中,在利用所述第一资源容器执行所述第一任务之后,所述方法还可以包括:

在接收到的第二任务的属性信息与所述第一任务的属性信息相匹配的情况下,向所述第二任务对应的目标对象反馈所述第一资源容器的目标信息。

在一些实施例中,当所述第一资源容器的数量为多个时,所述第一资源容器的目标信息可以包括以下至少一项:

多个所述第一资源容器的资源容量的中位数、多个所述第一资源容器的资源容量的平均值、多个所述第一资源容器的数量;

当多个所述第一资源容器为多个等级的所述资源容器时,所述第一资源容器的目标信息还可以包括:各个等级的所述资源容器的数量。

第二方面,本申请实施例提供了一种资源分配装置,应用于另一种资源协调者YARN的模型或系统,装置可以包括:

获取模块,用于在接收到第一任务的情况下,获取所述第一任务的属性信息;

确定模块,用于根据所述属性信息,从预设的多个等级的资源容器中确定出与所述属性信息对应的目标等级的第一资源容器;其中,不同等级的资源容器包含的资源容量不同;

执行模块,用于利用所述第一资源容器执行所述第一任务。

第三方面,本申请实施例提供了一种电子设备,电子设备可以包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如第一方面中任一实施例所述的资源分配方法的步骤。

第四方面,本申请实施例提供了一种计算机存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如第一方面中任一实施例所述的资源分配方法的步骤。

本申请实施例的资源分配方法、装置、设备及计算机存储介质,应用于另一种资源协调者YARN的模型或系统,首先在接收到第一任务的情况下,获取第一任务的属性信息;然后根据属性信息,从预设的多个等级的资源容器中确定出与属性信息对应的目标等级的第一资源容器;最后利用第一资源容器执行第一任务。由于本申请实施例的资源容器分为了多个等级、且不同等级的资源容器包含的资源容量不同,所以在为第一任务分配资源时,能够根据第一任务的属性信息为第一任务合理分配不同资源容量的资源容器来执行第一任务,实现资源的合理分配,进而解决因资源分配不合理导致的资源浪费严重、任务处理速度慢及耗时长的问题。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单的介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示意性示出了YARN模型或系统;

图2是本申请实施例提供的一种资源分配方法的流程示意图;

图3是本申请实施例提供的一种资源分配装置的结构示意图;

图4是本申请实施例提供的一种电子设备的结构示意图。

具体实施方式

下面将详细描述本申请的各个方面的特征和示例性实施例,为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及具体实施例,对本申请进行进一步详细描述。应理解,此处所描述的具体实施例仅意在解释本申请,而不是限定本申请。对于本领域技术人员来说,本申请可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本申请的示例来提供对本申请更好的理解。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

随着信息技术的不断发展和互联网的迅速普及,人们逐渐从信息的接收者转变为信息的生产者,信息的爆炸式增长推动着互联网进入大数据时代。如今大数据已经成为企业一种重要的战略资源和新型决策方式,大数据在行业的落地越来越突出,例如像海杜普Hadoop这样的大数据平台已经被全球大多数据企业用作其大数据环境中的重要基础软件。YARN作为大数据平台的资源管理和作业调度机制,它采用特定的调度算法对用户提交的作业进行资源分配和调度执行。鉴于资源分配的合理与否会直接影响到集群性能和用户体验,因此对YARN的研究和改进具有重要的现实意义。

在对本申请实施例提供的资源分配方法进行说明之前,为了便于能够更好地理解本申请实施例提供的资源分配方法、装置、设备及计算机存储介质,下面首先对于YARN模型或系统的主要框架和工作机制进行简单介绍。

图1示意性示出了YARN模型或系统。为了描述简洁,YARN模型或系统在下文中仅以YARN模型为例进行说明。如图1所示,YARN模型包括资源管理器(Resource Manager,简称RM)、应用程序管理器(Applications Manager,简称AM,图1未示出)和节点管理器(NodeManager,简称NM)。在实际应用中,应用程序管理器AM也可以看作是资源管理器RM的一部分,即可以认为资源管理器RM包括应用程序管理器AM,这里并不影响本申请实施例的实施。

资源管理器RM:RM作为全局的资源管理器,它负责整个系统的资源管理和分配,例如用于负责管理整个系统中所有应用程序,包括应用程序提交、与调度器协商资源以启动AM、监控AM运行状态和在AM失败时重新启动AM等。这里,应用程序可以理解为映射/归约作业(map/reduce作业,简称MR任务)。

应用程序管理器AM:主要用于:1)在接收到任务后,向RM申请执行该任务的资源容器Container;2)监控任务的运行状态;3)与NM通信以启动或停止某任务。

节点管理器NM:NM是每个节点上的资源和任务管理器。一方面,NM会定时地向RM汇报本节点上的资源使用情况和各个Container的运行状态;另一方面,NM接收并处理来自AM的Container启动/停止等各种请求。

资源容器Container:Container是YARN中的资源抽象,它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等。当AM向RM申请资源时,RM为AM返回的资源便是用Container表示。其中,YARN会为每个任务分配一个Container,且该任务只能使用该Container中描述的资源。

能力Capability:Capability是一个抽象概念,它表示Container的能力,可理解为单个Container包含的资源容量。Capability由组合构成。其中,mem表示内存,vCore表示CPU,即每个Container的能力由Container包含的内存和CPU决定。

YARN模型的工作机制如下:当YARN模型接收到一个新任务后,首先会生成一个针对该新任务的AM。接下来,生成的AM向RM申请执行该新任务的资源,这时RM会分配给AM由多个Container组成的资源包,其中每个Container用于执行一个map任务或者一个reduce任务。AM在接收到RM分配的资源包后,会与NM通信,以在对应节点上通过分配的Container执行map任务或reduce任务。

经本发明人研究发现,当前YARN资源分配模型或系统至少存在以下技术问题:

1)资源分配不合理。在本发明人对当前YARN资源分配模型或系统作出大量研究后发现,在当前YARN模型中,资源容器Container包含的资源容量是固定的,即每个资源容器的能力是相同的。在资源分配时,当前YARN模型是将map任务或reduce任务分配给相同能力的资源容器,而不同的map任务或reduce任务之间的复杂度或数据量是存在差异的,导致无论是复杂的任务或是简单的任务均交由同一能力的资源容器来执行,存在资源分配不合理的问题,也存在因资源分配不合理导致的资源浪费严重、任务处理速度慢及耗时长的问题。

例如,资源容器的能力是10,复杂的任务需要20,简单的任务需要2,这时,利用能力是10的资源容器来处理复杂的任务,势必会影响单个任务和整体任务的处理速度,导致任务处理速度慢及耗时长。而利用能力是10的资源容器来处理简单的任务,势必会造成资源的浪费。

2)当前YARN资源分配模型或系统在资源分配时,是先由专业人员来设定资源分配参数,再根据用户设定的资源分配参数来进行资源分配。专业人员每次在设定资源分配参数时,都需要预先做大量的调参测试。而且,由于不同的任务需要使用的资源的量是不同的,所以为了合理地分配资源,需要专业人员在每进行一个新任务时都需要重新调参,即重新设定资源分配参数,很大程度上增加了人员的工作量,需要投入大量成本。此外,像能深入源码调参的专业人员是非常稀缺的,这类人才的成本高昂且人员配比很少,无法满足企业每天成千上万的任务处理的需求,所以为了保证任务能按时完成,企业通常会配置超量的资源去处理任务,这样造成了资源大幅度浪费,导致整个集群效率低下,业务耗时间非常长,硬件成本一路走高。

为了解决现有技术问题,本申请实施例提供了一种资源分配方法、装置、设备及计算机存储介质。

本申请实施例的技术构思在于:将YARN模型中的资源容器划分为多个等级,不同等级的资源容器包含的资源容量不同。在为第一任务分配资源时,根据第一任务的属性信息为第一任务合理分配对应资源容量的资源容器,实现资源的合理分配,进而解决因资源分配不合理导致的资源浪费严重、任务处理速度慢及耗时长的问题,同时资源分配的整个过程由YARN模型完成,无需专业人员调参,从而降低专业人员的工作量,减少企业的投入成本。

下面首先对本申请实施例所提供的资源分配方法进行介绍。

图2是本申请实施例提供的资源分配方法的流程示意图。如图2所示,该方法可以包括以下步骤:

S101、在接收到第一任务的情况下,获取第一任务的属性信息。

在一些实施例中,第一任务例如可以是MR任务,即由map任务和reduce任务组成的任务。MR任务的执行过程包含两个阶段,一个是执行map任务的阶段,称为map阶段,在map阶段可以执行多个并行的map任务。另一个是执行reduce任务的阶段,称为reduce阶段。

相应地,当第一任务为MR任务时,属性信息例如可以包括map任务的数量和每个map任务的算法复杂度,还可以包括每个reduce任务的数据量和每个reduce任务的算法复杂度。

具体地,在S101中,例如用户可以通过客户端向YARN模型提交第一任务,YARN模型会首先为第一任务生成一个AM,生成的AM负责对第一任务的资源进行管理,包括资源的申请、释放、任务中Container的调度和运行。在向RM申请资源之前,AM需要先获取第一任务的属性信息。这里需要说明的是,由于是先执行map任务后执行reduce任务,并且每个reduce任务的数据量受map任务的影响,所以开始获取的第一任务的属性信息例如可以只包括map任务的数量和每个map任务的算法复杂度。

S102、根据第一任务的属性信息,从预设的多个等级的资源容器中确定出与属性信息对应的目标等级的第一资源容器。

在现有的YARN模型中,资源容器的能力或者说资源容器包含的资源容量是固定的。在资源分配时,现有的YARN模型是将map任务或reduce任务分配给相同能力的资源容器,最终分配的资源为相同能力的资源容器与需要的资源容器的数量的乘积。

与现有技术中资源容器的能力或者说资源容器包含的资源容量是固定的不同的是,本申请实施例在S101之前,预先将YARN模型中的资源容器划分为多个等级,每个等级的资源容器包含的资源容量与其他等级的资源容器包含的资源容量不同。其中,资源容器包含的资源容量可以理解为资源容器被封装的内存和CPU的数量,即

作为一种示例,例如第一等级的资源容器包含1个内存和1个CPU,记作;第二等级的资源容器包含2个内存和2个CPU,记作;第三等级的资源容器包含3个内存和3个CPU,记作。在这种示例下可以看出,第三等级的资源容器包含的资源容量大于第二等级的资源容器包含的资源容量,第二等级的资源容器包含的资源容量大于第一等级的资源容器包含的资源容量。即,第三等级的资源容器的能力依次大于第二等级的资源容器和第一等级的资源容器。

具体地,在map阶段,AM例如可以根据map任务的数量和每个map任务的算法复杂度,从预设的多个等级的资源容器中确定出与属性信息对应的目标等级的第一资源容器。

这里需要说明的是,目标等级可以是多个不同等级,也可以是多个相同等级,当然在只有一个map任务时也可以仅是一个等级,本申请不限于此。

其中,map任务的数量容易理解,可理解为是执行第一任务总共包括的map任务的数量。每个map任务的算法复杂度可以理解为:每个map任务中通常均会涉及算法运算,有的map任务中的算法运算可能比较简单,例如只有简单的加减运算,而有的map任务中的算法运算可能会涉及比较复杂的数学运算,算法复杂度便是衡量或区分map任务中算法运算等级的指标。例如,可以预先将map任务的算法运算分为多个等级,每一等级对应一个等级的资源容器。

在map阶段,在有多个map任务的情况下,例如可以先确定每个map任务的算法复杂度属于算法运算的哪一等级,然后确定出对应等级的资源容器,从而实现为算法复杂的map任务分配资源容量大的资源容器,为算法简单的map任务分配资源容量小的资源容器,达到资源合理分配的目的。

为了提高资源分配的速度,在一些实施例中,也可以在确定出复杂的map任务的对应等级的资源容器之后,确定剩余的简单map任务对应的是预设等级的资源容器,例如确定剩余的简单map任务对应的是上文中提到的第一等级的资源容器。预设等级的资源容器的数量根据简单map任务的数量直接确定。

由此,在map阶段,AM可以根据map任务的数量和每个map任务的算法复杂度,确定出执行map任务需要使用的第一资源容器,例如第一等级的资源容器有m个,第二等级的资源容器有n个,第三等级的资源容器有L个,m、n和L均为正整数。

在确定出执行map任务需要使用的第一资源容器之后,AM可以通过资源请求向RM申请第一资源容器,以得到map阶段需要的第一资源容器。

经本发明人研究发现,现有的YARN模型在reduce阶段经常出现数据倾斜,即有的reduce任务的数据量非常大,而有的reduce任务的数据量非常小,reduce任务的数据量不均。由于不同reduce任务的数据量差别很大,所以在reduce阶段利用统一固定的大小的资源容器对任务运行很容易形成两个极端,要么资源浪费,要么个别reduce任务执行时间超乎均值的几倍甚至几十上百倍,更甚的会运行了很长时间,最后还报错。

为了避免数据倾斜时资源浪费及任务执行时间长的问题,在一些实施例中,本申请实施例在reduce阶段,AM先获取每个reduce任务的数据量和每个reduce任务的算法复杂度,然后根据每个reduce任务的数据量和每个reduce任务的算法复杂度,从预设的多个等级的资源容器中确定出目标等级的第一资源容器。

具体地,在reduce阶段,当第j个reduce任务的数据量或算法复杂度大于或等于预设基准值的预设第二倍数时,确定大于或等于基准资源容量的预设第二倍数的资源容器为执行第j个reduce任务的所述第一资源容器;其中,基准资源容量为预设基准值对应的资源容器的资源容量,j为正整数。

在reduce阶段,当第p个reduce任务的数据量或算法复杂度小于预设基准值时,确定小于基准资源容量的资源容器为执行第p个reduce任务的第一资源容器,p≠j且p为正整数。

由此,通过上述方式可以实现为每一个reduce任务分配差异化的资源,例如为数据量大或者算法复杂的reduce任务分配资源容量大的资源容器,为数据量小或者算法简单的reduce任务分配资源容量小的资源容器,达到资源合理分配的目的和效果,使得不同reduce任务的运行时间差更小,达到合理的资源利用,有效的避免由于资源不足导致的数据倾斜。

由此,在reduce阶段,AM可以根据每个reduce任务的数据量和每个reduce任务的算法复杂度,确定出执行reduce任务需要使用的第一资源容器,例如第一等级的资源容器有m’个,第二等级的资源容器有n’个,第三等级的资源容器有L’个,m’、n’和L’均为正整数。

在确定出执行reduce任务需要使用的第一资源容器之后,AM可以通过资源请求向RM申请第一资源容器,以得到reduce阶段需要的第一资源容器。

S103、利用第一资源容器执行第一任务。

RM在接收到AM发送的资源请求后,为AM分配执行第一任务的第一资源容器。随后,AM与NM通信,以在对应节点上通过分配的第一资源容器执行map任务或reduce任务。

例如,AM在获得map阶段需要的第一资源容器后,与NM通信,以在对应节点上通过分配的第一资源容器执行map任务。AM在获得reduce阶段需要的第一资源容器后,与NM通信,以在对应节点上通过分配的第一资源容器执行reduce任务。当执行完所有的reduce任务之后,说明整个第一任务处理完成。

为了避免在map阶段中因个别第一资源容器处理map任务缓慢而拖慢整个第一任务的处理速度的问题,在一些实施例中,本申请实施例在利用第一资源容器执行map任务的过程中,还可以包括以下步骤:

第一步骤、监测每个第一资源容器执行对应map任务的情况。

第二步骤、当第二资源容器的数量或目标比例达到预设阈值时,确定第二资源容器执行map任务所需的平均时间。其中,第二资源容器为已执行完对应map任务的第一资源容器,目标比例为已执行完对应map任务的第一资源容器所占map阶段中全部第一资源容器的比例。

第三步骤、确定当前时刻和第三资源容器的执行时刻,以及当前时刻与执行时刻的第一差值。其中,第三资源容器为第i个未执行完对应map任务的第一资源容器,i为正整数;

第四步骤、当所述第一差值大于平均时间的预设第一倍数时,获取目标资源容器;其中,目标资源容器包含的资源容量大于第三资源容器。

利用目标资源容器执行目标map任务,目标map任务为第三资源容器执行的map任务。

作为一种示例,AM保持与各个第一资源容器通信,收集各个第一资源容器中任务运行情况。当已执行完对应map任务的第一资源容器所占map阶段中全部第一资源容器的比例达到70%时,启动一个单独的线程去计算各个已执行完对应map任务的第一资源容器的执行时间和全部已执行完对应map任务的第一资源容器执行map任务的平均时间。当未执行完对应map任务的第一资源容器的执行时刻与当前时刻的差值超过平均时间两倍时,申请未执行完对应map任务的第一资源容器的1.5倍资源,来执行目标map任务,以提高任务处理速度。

由此,当某些第一资源容器处理任务的速度缓慢时,利用能力更强的第一资源容器来执行这些处理缓慢的任务,以提高任务处理速度。

为了节省资源,在一些实施例中,例如当目标资源容器执行目标map任务的进度超过第三资源容器执行目标map任务的进度时,停止第三资源容器执行目标map任务。

具体地,AM监测到目标资源容器执行目标map任务的进度超过第三资源容器执行目标map任务的进度时,与NM通信,关停第三资源容器,从而节省第三资源容器的资源。

考虑到用户在执行某个新任务时有期望获知资源使用预算的需求,为了满足这种需求,在一些实施例中,在S103之后,还可以包括以下步骤:在接收到的第二任务的属性信息与第一任务的属性信息相匹配的情况下,向第二任务对应的目标对象反馈第一资源容器的目标信息。

作为一种示例,例如当接收到的第二任务的类型和数据量与第一任务的类型和数据量一致或相差不大时,可以向第二任务对应的目标对象反馈第一资源容器的目标信息。其中,第二任务对应的目标对象例如可以包括向YARN模型提交第二任务的用户。

为了使得用户清楚了解具体该使用哪种等级的资源容器以及各种等级的资源容器的数量,在一些实施例中,当第一资源容器的数量为多个时,第一资源容器的目标信息可以包括以下至少一项:

多个第一资源容器的资源容量的中位数、多个第一资源容器的资源容量的平均值、多个第一资源容器的数量。

当多个第一资源容器为多个不同等级的资源容器时,第一资源容器的目标信息还可以包括:各个等级的资源容器的数量。

基于上述实施例提供的资源分配方法,相应地,本申请还提供了资源分配装置的具体实现方式。请参见以下实施例。

本申请实施例提供的资源分配装置应用于另一种资源协调者YARN的模型或系统。请参见图3,本申请实施例提供的资源分配装置300可以包括以下模块:

获取模块301,用于在接收到第一任务的情况下,获取第一任务的属性信息;

确定模块302,用于根据属性信息,从预设的多个等级的资源容器中确定出与属性信息对应的目标等级的第一资源容器;其中,不同等级的资源容器包含的资源容量不同;

执行模块303,用于利用第一资源容器执行第一任务。

本申请实施例的资源分配装置,应用于另一种资源协调者YARN的模型或系统,获取模块用于在接收到第一任务的情况下,获取第一任务的属性信息;确定模块用于根据属性信息,从预设的多个等级的资源容器中确定出与属性信息对应的目标等级的第一资源容器;执行模块用于利用第一资源容器执行第一任务。由于本申请实施例的资源容器分为了多个等级、且不同等级的资源容器包含的资源容量不同,所以在为第一任务分配资源时,能够根据第一任务的属性信息为第一任务合理分配不同资源容量的资源容器来执行第一任务,实现资源的合理分配,进而解决因资源分配不合理导致的资源浪费严重、任务处理速度慢及耗时长的问题。

在一些实施例中,确定模块302具体用于当第一任务为至少一个映射map任务时,根据map任务的数量和每个map任务的算法复杂度,从预设的多个等级的资源容器中确定出目标等级的第一资源容器。

在一些实施例中,确定模块302具体用于当第一任务为至少一个归约reduce任务时,根据每个reduce任务的数据量和每个reduce任务的算法复杂度,从预设的多个等级的资源容器中确定出目标等级的第一资源容器。

在一些实施例中,执行模块303具体用于当第一任务为至少一个映射map任务时,监测每个第一资源容器执行对应map任务的情况;当第二资源容器的数量或目标比例达到预设阈值时,确定第二资源容器执行map任务所需的平均时间;第二资源容器为已执行完对应map任务的第一资源容器;目标比例为已执行完对应map任务的第一资源容器所占全部第一资源容器的比例;确定当前时刻和第三资源容器的执行时刻,以及当前时刻与执行时刻的第一差值;第三资源容器为第i个未执行完对应map任务的第一资源容器,i为正整数;当第一差值大于平均时间的预设第一倍数时,获取目标资源容器;其中,目标资源容器包含的资源容量大于第三资源容器;利用目标资源容器执行目标map任务,目标map任务为第三资源容器执行的map任务。

在一些实施例中,本申请实施例提供的资源分配装置300还可以包括监测模块,用于当目标资源容器执行目标map任务的进度超过第三资源容器执行目标map任务的进度时,停止第三资源容器执行目标map任务。

在一些实施例中,确定模块302具体用于当第j个reduce任务的数据量或算法复杂度大于或等于预设基准值的预设第二倍数时,确定大于或等于基准资源容量的预设第二倍数的资源容器为执行第j个reduce任务的第一资源容器;基准资源容量为预设基准值对应的资源容器的资源容量,j为正整数;当第p个reduce任务的数据量或算法复杂度小于预设基准值时,确定小于基准资源容量的资源容器为执行第p个reduce任务的第一资源容器,p≠j且p为正整数。

在一些实施例中,本申请实施例提供的资源分配装置300还可以包括反馈模块,用于在接收到的第二任务的属性信息与第一任务的属性信息相匹配的情况下,向第二任务对应的目标对象反馈第一资源容器的目标信息。

在一些实施例中,当第一资源容器的数量为多个时,第一资源容器的目标信息包括以下至少一项:

多个第一资源容器的资源容量的中位数、多个第一资源容器的资源容量的平均值、多个第一资源容器的数量;

当多个第一资源容器为多个等级的资源容器时,第一资源容器的目标信息还包括:各个等级的资源容器的数量。

图3所示装置中的各个模块/单元具有实现图2中各个步骤的功能,并能达到其相应的技术效果,为简洁描述,在此不再赘述。

基于上述实施例提供的资源分配方法,相应地,本申请还提供了电子设备的具体实现方式。请参见以下实施例。

图4示出了本申请实施例提供的电子设备的硬件结构示意图。

电子设备可以包括处理器401以及存储有计算机程序指令的存储器402。

具体地,上述处理器401可以包括中央处理器(Central Processing Unit,CPU),或者特定集成电路(Application Specific Integrated Circuit,ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。

存储器402可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器402可包括硬盘驱动器(Hard Disk Drive,HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(Universal Serial Bus,USB)驱动器或者两个或更多个以上这些的组合。在一个实例中,存储器402可以包括可移除或不可移除(或固定)的介质,或者存储器402是非易失性固态存储器。存储器402可在综合网关容灾设备的内部或外部。

存储器402在一个实例中,存储器402可以是只读存储器(Read Only Memory,ROM)。在一个实例中,该ROM可以是掩模编程的ROM、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、电可改写ROM(EAROM)或闪存或者两个或更多个以上这些的组合。

存储器402可以包括只读存储器(ROM),随机存取存储器(RAM),磁盘存储介质设备,光存储介质设备,闪存设备,电气、光学或其他物理/有形的存储器存储设备。因此,通常,存储器包括一个或多个编码有包括计算机可执行指令的软件的有形(非暂态)计算机可读存储介质(例如,存储器设备),并且当该软件被执行(例如,由一个或多个处理器)时,其可操作来执行参考根据本公开的一方面的方法所描述的操作。

处理器401通过读取并执行存储器402中存储的计算机程序指令,以实现图2所示实施例中的方法/步骤S101至S103,并达到图2所示实例执行其方法/步骤达到的相应技术效果,为简洁描述在此不再赘述。

在一个示例中,电子设备还可包括通信接口403和总线410。其中,如图4所示,处理器401、存储器402、通信接口403通过总线410连接并完成相互间的通信。

通信接口403,主要用于实现本申请实施例中各模块、装置、单元和/或设备之间的通信。

总线410包括硬件、软件或两者,将在线数据流量计费设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(Accelerated Graphics Port,AGP)或其他图形总线、增强工业标准架构(Extended Industry Standard Architecture,EISA)总线、前端总线(Front Side Bus,FSB)、超传输(Hyper Transport,HT)互连、工业标准架构(Industry Standard Architecture,ISA)总线、无限带宽互连、低引脚数(LPC)总线、存储器总线、微信道架构(MCA)总线、外围组件互连(PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(SATA)总线、视频电子标准协会局部(VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线410可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线,但本申请考虑任何合适的总线或互连。

另外,结合上述实施例中的资源分配方法,本申请实施例可提供一种计算机存储介质来实现。该计算机存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种资源分配方法。

综上所述,本申请实施例的资源分配方法、装置、设备及计算机存储介质,应用于另一种资源协调者YARN的模型或系统,首先在接收到第一任务的情况下,获取第一任务的属性信息;然后根据属性信息,从预设的多个等级的资源容器中确定出与属性信息对应的目标等级的第一资源容器;最后利用第一资源容器执行第一任务。由于本申请实施例的资源容器分为了多个等级、且不同等级的资源容器包含的资源容量不同,所以在为第一任务分配资源时,能够根据第一任务的属性信息为第一任务合理分配不同资源容量的资源容器来执行第一任务,实现资源的合理分配,进而解决因资源分配不合理导致的资源浪费严重、任务处理速度慢及耗时长的问题。

需要明确的是,本申请并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本申请的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本申请的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。

以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本申请的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RadioFrequency,RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。

还需要说明的是,本申请中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本申请不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。

上面参考根据本公开的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各方面。应当理解,流程图和/或框图中的每个方框以及流程图和/或框图中各方框的组合可以由计算机程序指令实现。这些计算机程序指令可被提供给通用计算机、专用计算机、或其它可编程数据处理装置的处理器,以产生一种机器,使得经由计算机或其它可编程数据处理装置的处理器执行的这些指令使能对流程图和/或框图的一个或多个方框中指定的功能/动作的实现。这种处理器可以是但不限于是通用处理器、专用处理器、特殊应用处理器或者现场可编程逻辑电路。还可理解,框图和/或流程图中的每个方框以及框图和/或流程图中的方框的组合,也可以由执行指定的功能或动作的专用硬件来实现,或可由专用硬件和计算机指令的组合来实现。

以上所述,仅为本申请的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。

相关技术
  • 资源分配方法及装置、计算机设备、计算机可读存储介质
  • 资源分配方法、装置、计算机设备及计算机可读存储介质
技术分类

06120112250724