大数据资源的调度方法、装置、服务器及存储介质与流程

文档序号:21318175发布日期:2020-06-30 20:48阅读:248来源:国知局
大数据资源的调度方法、装置、服务器及存储介质与流程

本申请属于资源调度技术领域,特别是涉及一种大数据资源的调度方法、装置、服务器及存储介质。



背景技术:

大数据一般是指无法在一定时间范围内用传统的计算机技术进行处理的海量数据集。对于大数据的测试需要使用不同的工具、技术、框架来进行。

例如,通过大数据测试的方式去验证开发部门提交的代码质量、检测相关的漏洞或问题点,可以保证海量的保单数据以及交易数据的准确性。

通常,大数据测试环境下的资源都是有限的。在进行大数据测试时,都是按照多个子队列关联一个父队列,由父队列和该父队列下的多个子队列共享资源来进行的。但是,在实际运行中,各个子队列往往根据最大所需量进行资源申请,容易导致各个子队列申请的资源之和大于为关联的父队列实际所分配的资源量。当多个子队列对应的任务同时下发时,不仅会出现资源被抢占导致部分正在运行的任务临时中止的情况,还会使得另外一部分任务长时间处于等待状态无法正常开始。因此,目前针对大数据测试环境下的不合理的资源分配方式降低了资源的整体利用率。



技术实现要素:

有鉴于此,本申请实施例提供了一种大数据资源的调度方法、装置、服务器及存储介质,以解决现有技术中大数据环境下资源分配不合理,资源整体利用率较低的问题。

本申请实施例的第一方面提供了一种大数据资源的调度方法,包括:

为大数据环境下的父队列分配资源,根据所述父队列分配到的资源量,在待分配资源的多个子队列中确定与所述父队列关联的多个关联子队列,其中,所述父队列分配到的资源量与多个关联子队列所需的资源量之间的差值处于预设数值区间;

预估各个关联子队列将要运行的运行时长,根据所述运行时长确定所述各个关联子队列的第一优先级;

根据所述各个关联子队列的运行属性信息确定所述各个关联子队列的第二优先级;

基于所述第一优先级和所述第二优先级,计算所述各个关联子队列的目标优先级;

依据所述各个关联子队列的目标优先级将所述父队列分配到的资源分配至所述各个关联子队列。

本申请实施例的第二方面提供了一种大数据资源的调度装置,包括:

父队列资源分配模块,用于为大数据环境下的父队列分配资源,根据所述父队列分配到的资源量,在待分配资源的多个子队列中确定与所述父队列关联的多个关联子队列,其中,所述父队列分配到的资源量与多个关联子队列所需的资源量之间的差值处于预设数值区间;

第一优先级确定模块,用于预估各个关联子队列将要运行的运行时长,根据所述运行时长确定所述各个关联子队列的第一优先级;

第二优先级确定模块,用于根据所述各个关联子队列的运行属性信息确定所述各个关联子队列的第二优先级;

目标优先级计算模块,用于基于所述第一优先级和所述第二优先级,计算所述各个关联子队列的目标优先级;

子队列资源分配模块,用于依据所述各个关联子队列的目标优先级将所述父队列分配到的资源分配至所述各个关联子队列。

本申请实施例的第三方面提供了一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述大数据资源的调度方法的步骤。

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

与现有技术相比,本申请实施例包括以下优点:

本申请实施例,通过首先为大数据环境下的父队列分配资源,并在待分配资源的多个子队列中确定与父队列关联的多个关联子队列,使得父队列分配到的资源量与多个关联子队列所需的资源量之间的差值处于预设数值区间,可以相对平均地将大数据环境下的全部资源进行第一次分配。然后,在根据待分配资源的各个关联子队列将要运行的运行时长和自身的运行属性信息,确定出各个关联子队列的第一优先级和第二优先级后,可以基于第一优先级和第二优先级,计算各个关联子队列的目标优先级,使得父队列可以按照目标优先级的高低将分配到的资源再分配至各个关联子队列。本实施例根据各个子队列所需的资源量将其与不同的父队列关联,通过将父队列和子队列进行合理组合,能够较大限度地提高资源分配的公平性;其次,本实施例中子队列的资源再分配过程是在各个父队列内部进行的,关联至不同父队列的子队列之间不会出现共用资源的情况,降低了子队列间进行资源抢占的可能性,从整体上实现了资源的合理调度,提高了资源的利用率。

附图说明

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

图1是本申请一个实施例的一种大数据资源的调度方法的步骤流程示意图;

图2是本申请一个实施例的另一种大数据资源的调度方法的步骤流程示意图;

图3是本申请一个实施例的又一种大数据资源的调度方法的步骤流程示意图;

图4是本申请一个实施例的再一种大数据资源的调度方法的步骤流程示意图;

图5是本申请一个实施例的一种大数据资源的调度装置的示意图;

图6是本申请一个实施例的一种服务器的示意图。

具体实施方式

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域技术人员应当清楚,在没有这些具体细节的其他实施例中也可以实现本申请。在其他情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。

下面通过具体实施例来说明本申请的技术方案。

参照图1,示出了本申请一个实施例的一种大数据资源的调度方法的步骤流程示意图,具体可以包括如下步骤:

s101、为大数据环境下的父队列分配资源,根据所述父队列分配到的资源量,在待分配资源的多个子队列中确定与所述父队列关联的多个关联子队列,其中,所述父队列分配到的资源量与多个关联子队列所需的资源量之间的差值处于预设数值区间;

需要说明的是,本方法可以适用于大数据环境下的服务器,通过该服务器的调度,实现对整个系统大数据资源的统一分配。上述大数据环境可以是一个基于大数据进行计算的大数据系统,也可以是针对大数据进行数据测试的测试系统,本实施例对此不作限定。

通常,在大数据环境下,各种设备、服务器以及系统之间可以通过父队列和子队列的形式来进行组织。以某个企业全部设备、服务器和系统共同组成一个大数据环境为例,在该企业中可以存在数个父队列,每个父队列下又可以关联有无数的子队列,每个子队列可以对应企业内的一个项目组,通过该项目组去实现或执行的各个任务均可以在对应的子队列中完成。

由于各个子队列均是与某一个父队列相关联的,因此为了合理地分配资源,可以首先为整个大数据环境中的父队列分配资源,然后再对各个子队列进行组合,将其关联至父队列中,作为与该父队列关联的关联子队列。

在具体实现中,可以将全部资源量相对平均地分配至各个父队列,然后根据父队列分配到的资源量和待分配资源的各个子队列对应项目在执行任务时所需的资源量,确定与各个父队列关联的关联子队列,使某个父队列分配到的资源量与与其关联的多个关联子队列所需的资源量之和接近相等。

需要说明的是,在确定与各个父队列关联的各个关联子队列时,父队列分配到的资源量可以略微大于与之关联的各个关联子队列所需的资源量之和,也可以略微小于与之关联的各个关联子队列所需的资源量之和。即,父队列分配到的资源量与多个关联子队列所需的资源量之间的差值应当处于一个数值区间内,该数值区间可以根据实际需要确定,本实施例对此不作限定。

s102、预估各个关联子队列将要运行的运行时长,根据所述运行时长确定所述各个关联子队列的第一优先级;

在本实施例中,可以通过确定各个关联子队列的优先级来对各个关联子队列进行资源分配。一般地,优先级越高的关联子队列应当比优先级相对较低的关联子队列更早地分配到资源;或者,优先级越高的关联子队列应当比优先级相对较低的关联子队列分配到更多的资源。

当然,根据实际需要,可以根据多种因素综合地确定各个关联子队列的优先级。例如,可以通过预估各个关联子队列将要运行的运行时长,来确定出其中的一个优先级。

通常,需要处理的数据越多,子队列完成一个任务所需的时间也就越长,同时需要的资源量也越多。因此,可以通过比较各个子队列待处理数据的数据量大小,确定各个子队列将要运行的运行时长。

在大多数情况下,为了提高资源的利用率,减少等待运行任务的数量,可以优先运行较短时间内即可完成的那些任务。例如,对于等待运行的两个任务,若完成其中一个任务所需的时间明显少于完成另一个任务所需的时间,则可以优先运行完成时间较短的那个任务。

因此,本实施例在预估出各个关联子队列将要运行的运行时长后,可以设定运行时长最短的那个关联子队列的优先级最高,而运行时长最长的那个关联子队列的优先级则最低,处于二者之间的那些关联子队列则可以按照“运行时长短,优先级高”的方式逐个确定每个关联子队列的优先级。即,优先级与将要运行的运行时长成反比。

当然,在某些情况下,也可以设定优先级与将要运行的运行时长成正比。即,将运行时长越长的关联子队列设定为具有更高的优先级,从而允许优先为其分配资源。

s103、根据所述各个关联子队列的运行属性信息确定所述各个关联子队列的第二优先级;

在本实施例中,除了根据将要运行的运行时长确定各个关联子队列的优先级外,还可以根据各个关联子队列自身的属性信息确定优先级。由于各个子队列均是通过承载某个或多个任务去体现自身的功能,因此,子队列的属性信息也可以看作是当前运行的任务的运行属性信息。例如,该任务的紧急情况、运行过程中出现错误的概率等等。

一般地,可以设定越紧急的任务具有更高的优先级,出错率高的任务具有更低的优先级。

s104、基于所述第一优先级和所述第二优先级,计算所述各个关联子队列的目标优先级;

在根据运行时长确定出关联子队列的第一优先级,根据待运行任务自身的属性信息确定出第二优先级后,可以综合地对上述第一优先级和第二优先级进行考虑,从而计算出各个关联子队列最终的目标优先级。

在具体实现中,可以通过对第一优先级和第二优先级进行量化处理,使其数值化,然后通过加权求和的方式计算目标优先级;也可以以其中一种优先级为主要的排序方式,再考虑另外一种优先级的相对权重,根据相对权重的大小决定是否调整主优先级的排序。

例如,可以以第一优先级为主,分别为第二优先级赋予一定的权重值,如果该权重值超过某个数值,则允许提高关联子队列在第一优先级中的排序位次,所提高的位次也可以根据权重值来确定。

当然,上述仅仅是一种示例,在针对不同因素确定关联子队列的多个优先级后,本领域技术人员可以根据实际需要,采用多种方式计算目标优先级,本实施例对此不作限定。

作为本实施例的一种示例,针对某一父队列,在进行资源分配前,还可以分别确定各个关联子队列已经等待的时长,并根据该等待时长,确定各个关联子队列的第三优先级。通常,第三优先级可以是与已等待时长成反比例关系。即,等待时间越长,第三优先级越高,等待时间越短,第三优先级越低。

然后基于第一优先级、第二优先级和第三优先级,共同计算各个关联子队列的目标优先级。

当然,上述仅仅是一种示例,针对不同因素确定的优先级可以包括多个,本实施例对此亦不作限定。

s105、依据所述各个关联子队列的目标优先级将所述父队列分配到的资源分配至所述各个关联子队列。

在本实施例中,针对各个关联子队列的资源分配可以是在其关联的父队列内部完成的。即,由父队列将分配到的资源再分配给与之关联的各个关联子队列。

上述再分配过程可以根据各个关联子队列的目标优先级来完成。拥有更高优先级的关联子队列可以更早或者更多地获得资源分配。

在本申请实施例中,通过首先为大数据环境下的父队列分配资源,并在待分配资源的多个子队列中确定与父队列关联的多个子队列,使得父队列分配到的资源量与多个关联子队列所需的资源量之间的差值处于预设数值区间,可以相对平均地将大数据环境下的全部资源进行第一次分配。然后,在根据待分配资源的各个关联子队列将要运行的运行时长和自身的运行属性信息,确定出各个关联子队列的第一优先级和第二优先级后,可以基于第一优先级和第二优先级,计算各个关联子队列的目标优先级,使得父队列可以按照目标优先级的高低将分配到的资源再分配至各个关联子队列。本实施例根据各个子队列所需的资源量将其与不同的父队列关联,通过将父队列和子队列进行合理组合,能够较大限度地提高资源分配的公平性;其次,本实施例中子队列的资源再分配过程是在各个父队列内部进行的,关联至不同父队列的子队列之间不会出现共用资源的情况,降低了子队列间进行资源抢占的可能性,从整体上实现了资源的合理调度,提高了资源的利用率。

参照图2,示出了本申请一个实施例的另一种大数据资源的调度方法的步骤流程示意图,具体可以包括如下步骤:

s201、为大数据环境下的父队列分配资源,根据所述父队列分配到的资源量,在待分配资源的多个子队列中确定与所述父队列关联的多个关联子队列,其中,所述父队列分配到的资源量与多个关联子队列所需的资源量之间的差值处于预设数值区间;

在本实施例中,在为大数据环境下的父队列分配资源时,可以首先统计整个大数据环境下的总资源量和待分配资源的父队列个数,然后将总资源量平均分配至各个父队列。

本实施例中的大数据环境可以是某个企业全部设备、资源所构成的企业系统。通常,企业的大数据资源都是按照多个子队列共享一个父队列的方式来进行分配的,整个企业可以对应有数个父队列,每个父队列下关联有多个子队列。各个项目组分别具有其专有的子队列,一个项目组的多个任务分属同一个子队列。

例如,整个企业可以包括有父队列1507、父队列1508和父队列1509三个父队列,各个父队列所包括的资源如客户端资源、大数据集群资源、大数据可视化工具等资源共同构成了整个企业的资源量。以父队列1508为例,其下又可以关联有子队列1508-01、1508-02等等,各个子队列分别对应一个项目,并为该项目组的任务提供相应的资源。

为了更合理地将各个子队列与父队列进行管理,可以计算待分配资源的各个子队列各自所需的资源量,根据父队列分配到的资源量和各个子队列各自所需的资源量,分别确定与各个父队列关联的多个关联子队列,使得父队列分配到的资源量与与其关联的多个关联子队列所需的资源量接近相等。

在具体实现中,可以首先确定整个企业可分配的资源量,以及预先划分的父队列个数,将可分配的资源量相对平均地分配至各个父队列。然后,由于一个项目组对应一个子队列,因此可以在统计各个项目组所需的资源量后,通过对各个项目组对应的子队列进行组合,并将这些子队列关联至某个父队列,使得父队列下关联的各个子队列的资源量之和与父队列实际可分配的资源量接近相等。

例如,以存储资源为例,若整个企业可分配的资源量为t,预先划分的父队列个数为4个,即p1、p2、p3和p4,则实际每个父队列可分配的存储资源量约为t/4,若各个项目组对应的子队列分别p1、p2、p3、……、p100,各个子队列为所需的存储资源分别为t1、t2、t3、……、t100,则可以对上述子队列进行组合,得到四个子队列组合,使得各个组合中所需的存储资源总量接近等于t/4。

假设:t1+t2+……t25≈t/4,t26+t27+……t50≈t/4,t51+t52+……t75≈t/4,t76+t77+……t100≈t/4,则p1的关联子队列可以是(p1、p2、……、p25),p2的关联子队列可以是(p26、p27、……、p50),p3的关联子队列可以是(p51、p52、……、p75),p4的关联子队列可以是(p76、p77、……、p100)。

通过将父队列和子队列合理组合,能够较大限度地提高资源分配的公平性。

在为各个父队列分配资源,并确定出各个父队列的关联子队列后,可以由各个父队列将分配到的资源再分配给各个关联子队列。

对于任一父队列,在接收到需要为各个子队列分配资源的请求时,可以首先确定该父队列下是否存在正在运行的子队列。对于正在运行中的子队列和任务,应当优先保证该子队列或任务的正常运行。

因此,在本实施例中,对于正在运行的子队列,可以计算该子队列所处的运行时间段,以及在下一运行时间段内所需的资源量,并为其预留在下一运行时间段内所需的资源量。

在具体实现中,可以确定正在运行的子队列已运行的时长,并统计在上述时长中总共占用的资源量,从而计算出其单位时间内所占用的资源,并乘以下一运行时间段的时长,得到该子队列下一运行时间段内所需的资源。

当然,在采用单位资源乘以下一运行时间段的时长得到该子队列下一运行时间段内所需的资源时,还可以根据实际情况,乘以一个比例,得到最终预留的资源。该比例可以是90%,也可以是110%等等。

正在运行的子队列目前所处的运行时间段可以根据预估的该子队列执行完整个任务的总运行时间与单位时间段长度之间的比值确定。例如,若总运行时间为6个小时,预设的单位时间段长度为1个小时,如果该子队列已经运行了2个半小时,则目前所处的运行时间段为第三运行时间段。

本实施例通过为正在运行的子队列仅仅预留下一运行时间段所需的资源,而不是预留执行完成整个任务所需的资源,能够最大限度地将资源分配给当前待执行任务的其他子队列,有效提高了资源的利用率。

在为正在运行的子队列预留相应的资源量后,可以计算得到父队列当前实际可分配的资源量。

s202、获取所述各个关联子队列的历史运行数据,根据所述历史运行数据分别生成与所述各个关联子队列相对应的运行走势图;

通常,为了提高资源的利用率,减少等待运行的子队列的数量,可以优先运行较短时间内即可完成任务的那些子队列。例如,对于等待运行的两个关联子队列,若其中一个关联子队列完成任务所需的时间明显少于另一个关联子队列完成任务所需的时间,则可以优先运行完成时间较短的那个关联子队列。

因此,本实施例可以通过预估各个关联子队列完成任务所需的时长,根据该时长以反比例的方式确定各个关联子队列的第一优先级。

在本实施例中,可以根据各个关联子队列的历史运行数据和本次待处理数据的数据量,预估该关联子队列将要运行的运行时长。上述历史运行数据可以从运行日志中查找得到,而本次待处理数据的数据量则可以从申请资源的请求中获得。

在查找出历史运行数据后,可以根据历史数据绘制出相应的运行走势图。该运行走势图可以以二维坐标系的方式呈现,其中,横坐标为时间,纵坐标为随着时间的推移所需的资源量。

s203、将所述运行走势图与预置的多个运行模型对应的运行走势图进行比较,识别出目标模型,确定所述目标模型处理单位数据所需的时间;

在本实施例中,可以通过模拟的方式预先生成多个运行模型,该模型可以是线性模型,每个模型对应于一种运行状态。

在根据关联子队列的历史运行数据绘制出运行走势图后,可以将运行走势图与预置的运行模型对应的运行走势图进行比较,找出相似性最高的模型,并确定出该模型处理单位数据所需的时间。

s204、分别统计所述各个关联子队列当前待处理数据的数据量,根据所述当前待处理数据的数据量和所述目标模型处理单位数据所需的时间,计算所述各个关联子队列将要运行的运行时长,根据所述运行时长确定所述各个关联子队列的第一优先级;

由于目标模型模拟数据处理的过程可以看作是与对应的关联子队列实际处理数据的过程具有极大的相似性,因此根据步骤s203计算得到的目标模型处理单位数据所需的时间也可以看作是对应的关联子队列在实际运行过程中,处理单位数据所需的时间。

因此,根据计算得到的上述时间,再结合关联子队列当前待处理数据的数据量,可以预估得到该关联子队列执行任务所需的时间。再根据上述时间可以确定各个关联子队列的第一优先级。

当然,若某个关联子队列是首次运行,没有历史运行数据,则无法按照上述方式去预估将要运行的运行时长。

因此,在本实施例中,针对某个目标子队列,若未获取到其历史运行数据,则可以识别已获取到历史运行数据的关联子队列对应的多个目标模型,通过计算多个目标模型处理单位数据所需的时间的平均值,再根据目标子队列待处理数据的数据量和多个目标模型处理单位数据所需的时间的平均值,计算出该目标子队列将要运行的运行时长,上述目标子队列可以是未获取到历史运行数据的关联子队列中的任意一个。

例如,对于某个首次运行的目标子队列,可以按照上述方式确定出已获取到历史运行数据的其他各个关联子队列对应的目标模型,并计算出各个目标模型处理单位数据所需的时间,然后对上述时间求平均,得到该目标子队列运行单位数据所需的时间,乘以本次待处理数据的数据量,可以预估得到该目标子队列完成任务所需的时间。

s205、根据所述各个关联子队列的运行属性信息确定所述各个关联子队列的第二优先级;

s206、基于所述第一优先级和所述第二优先级,计算所述各个关联子队列的目标优先级;

s207、依据所述各个关联子队列的目标优先级将所述父队列分配到的资源分配至所述各个关联子队列。

本实施例通过获取各个关联子队列的历史运行数据,并根据历史运行数据计算关联子队列处理单位数据所需的时间,再结合当前待处理数据的数据量预估本次执行任务所需的时间,提高了预估各个关联子队列将要运行的运行时长的准确性,进而也提高了根据将要运行的运行时长确定的第一优先级的准确性。

参照图3,示出了本申请一个实施例的又一种大数据资源的调度方法的步骤流程示意图,具体可以包括如下步骤:

s301、为大数据环境下的父队列分配资源,根据所述父队列分配到的资源量,在待分配资源的多个子队列中确定与所述父队列关联的多个关联子队列,其中,所述父队列分配到的资源量与多个关联子队列所需的资源量之间的差值处于预设数值区间;

s302、预估各个关联子队列将要运行的运行时长,根据所述运行时长确定所述各个关联子队列的第一优先级;

由于步骤s301-s302与前述实施例中步骤s101-s102、s201-s204类似,可以相互参阅,本实施例对此不再赘述。

s303、分别对所述各个关联子队列的任务紧急度和任务出错率进行量化,得到任务紧急度量化值和任务出错率量化值,所述任务紧急度量化值和任务出错率量化值分别具有相应的权重值;

在本实施例中,除了根据将要运行的运行时长确定各个关联子队列的优先级外,还可以根据各个关联子队列的运行属性信息确定优先级,上述运行属性信息可以包括各个关联子队列当前待运行任务的任务紧急度和任务出错率。

与各个关联子队列本次待处理数据的数据量类似,任务紧急度和任务出错率也可以从该关联子队列申请资源的请求中获得。

任务紧急度可以表示该任务的重要程度或紧急程度,通常可以划分为高、中、低三个等级,各个等级分别对应一个紧急度量化值。例如,高紧急度对应的量化值可以为80-100,中紧急度对应的量化值可以为40-60,而低紧急度对应的量化值可以为0-20等等。

任务出错率可以表示该任务在执行过程中可能出现运行错误的概率,该概率可以由发起该任务的项目组开发人员预估得到。同样的,任务出错率也可以划分为高、中、低三个等级,各个等级分别对应一个量化值。例如,低出错率对应的量化值可以为80-100,中出错率对应的量化值可以为40-60,而高出错率对应的量化值可以为0-20等等。

对任务紧急度和任务出错率进行量化后得到的任务紧急度量化值和任务出错率量化值可以分别对应一个权重值,该权重值可以表示在计算第二优先级时,任务紧急度和任务出错率谁更重要。

例如,若设定任务紧急度量化值的权重为65%,任务出错率量化值的权重为35%,则表示在计算第二优先级时,优先考虑的因素是任务紧急度。

s304、根据所述权重值,对所述各个关联子队列的任务紧急度量化值和任务出错率量化值进行加权求和,获得所述各个关联子队列的优先级数值,根据所述优先级数值确定所述各个关联子队列的第二优先级;

以上述权重值为例,第二优先级对应的优先级数值可以表示为65%任务紧急度量化值+35%任务出错率量化值。

将所有关联子队列的优先级数值按照一定顺序排列,即可得到所有关联子队列的第二优先级。

s305、基于所述第一优先级和所述第二优先级,计算所述各个关联子队列的目标优先级;

s306、依据所述各个关联子队列的目标优先级将所述父队列分配到的资源分配至所述各个关联子队列。

本实施例通过对待运行任务的任务紧急度和任务出错率等自身属性进行量化,并按照一定权重计算出第二优先级,从而可以在第一优先级的基础上,结合各个关联子队列当前待运行任务的实际情况得出各个关联子队列最终的目标优先级,解决了通过单一因素确定关联子队列优先级可能出现的片面或不准确的情况,进一步保证了优先级计算的准确性,有利于将父队列的资源优先分配至确实需要尽快开始运行的关联子队列,提高了资源的利用率。

参照图4,示出了本申请一个实施例的再一种大数据资源的调度方法的步骤流程示意图,具体可以包括如下步骤:

s401、为大数据环境下的父队列分配资源,根据所述父队列分配到的资源量,在待分配资源的多个子队列中确定与所述父队列关联的多个关联子队列,其中,所述父队列分配到的资源量与多个关联子队列所需的资源量之间的差值处于预设数值区间;

s402、预估各个关联子队列将要运行的运行时长,根据所述运行时长确定所述各个关联子队列的第一优先级;

s403、根据所述各个关联子队列的运行属性信息确定所述各个关联子队列的第二优先级;

s404、基于所述第一优先级和所述第二优先级,计算所述各个关联子队列的目标优先级;

由于步骤s401-s404与前述实施例中步骤s101-s104、s201-s206、s301-s305类似,可以相互参阅,本实施例对此不再赘述。

s405、获取所述父队列在单位时间内消耗的资源量,根据所述单位时间内消耗的资源量计算预设运行时间段内的可分配资源量;

需要说明的是,根据各个关联子队列的目标优先级为其分配资源可以是在与各个关联子队列关联的父队列内部进行的。即,各个父队列为与之关联的那些关联子队列分配资源。

在具体实现中,可以根据历史运行数据获取该父队列在单位时间内消耗的资源量,上述历史运行数据可以是指父队列下关联的各个子队列的历史运行数据。

作为一种示例,父队列单位时间消耗的资源量可以简单认为是各个关联子队列单位时间消耗的资源量之和。

根据父队列单位时间内消耗的资源量可以计算预设运行时间段内的可分配资源量。上述预设运行时间段可以是指后续的一定时长的时间,例如可以是5个小时。

例如,若父队列在一个小时内消耗的资源量为t,预设运行时间段为5个小时,则在预设运行时间段内父队列可分配的资源量为5t。

s406、根据所述各个关联子队列的目标优先级,分别将所述预设运行时间段内的可分配资源量分配至所述各个关联子队列;

在本实施例中,父队列为各个关联子队列分配资源时,可以按照一个一个的时间段来进行。例如,为各个关联子队列分配后续5个小时内所需的资源量。

s407、当到达所述预设运行时间段对应的结束时间点时,重新计算所述各个关联子队列的目标优先级,依据重新计算的目标优先级将所述父队列在下一预设运行时间段内的可分配资源量分配到所述各个关联子队列。

在本实施例中,到达预设运行时间段对应的结束时间点时可以是指上述整个父队列下的子队列已经运行了5个小时。当然,在由父队列为各个关联子队列分配资源后,在这5个小时内可能某些关联子队列已经完成了任务,而不需要再获得资源了。

因此,在5个小时运行完成后,可以重新计算需要分配资源的各个关联子队列的目标优先级,然后由父队列根据重新计算的目标优先级,为仍然需要再分配资源的各个关联子队列分配接下来5个小时内所需的资源。

本实施例通过为各个关联子队列分配一定时间段内所需的资源,而不是预先为其分配执行完成整个任务所需的资源,能够避免各个关联子队列对资源的占用,最大限度地将资源分配给当前待执行的关联子队列,有效地提高了资源的利用率。

需要说明的是,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

参照图5,示出了本申请一个实施例的一种大数据资源的调度装置的示意图,具体可以包括如下模块:

父队列资源分配模块501,用于为大数据环境下的父队列分配资源,根据所述父队列分配到的资源量,在待分配资源的多个子队列中确定与所述父队列关联的多个关联子队列,其中,所述父队列分配到的资源量与多个关联子队列所需的资源量之间的差值处于预设数值区间;

第一优先级确定模块502,用于预估各个关联子队列将要运行的运行时长,根据所述运行时长确定所述各个关联子队列的第一优先级;

第二优先级确定模块503,用于根据所述各个关联子队列的运行属性信息确定所述各个关联子队列的第二优先级;

目标优先级计算模块504,用于基于所述第一优先级和所述第二优先级,计算所述各个关联子队列的目标优先级;

子队列资源分配模块505,用于依据所述各个关联子队列的目标优先级将所述父队列分配到的资源分配至所述各个关联子队列。

在本申请实施例中,所述父队列资源分配模块501具体可以包括如下子模块:

总资源量和父队列个数统计子模块,用于统计大数据环境下的总资源量和待分配资源的父队列个数;

父队列资源分配子模块,用于将所述总资源量平均分配至各个父队列;

关联子队列确定子模块,用于计算待分配资源的多个子队列各自所需的资源量,根据所述父队列分配到的资源量和所述多个子队列各自所需的资源量,分别确定与所述各个父队列关联的多个关联子队列。

在本申请实施例中,所述父队列资源分配模块501还可以包括如下子模块:

正在运行子队列确定模块,用于确定所述父队列下是否存在正在运行的子队列;

资源预留模块,用于若是,则计算所述正在运行的子队列所处的运行时间段,以及计算在下一运行时间段内所需的资源量,并为所述正在运行的子队列预留在下一运行时间段内所需的资源量,所述运行时间段根据预估的所述子队列的总运行时间与单位时间段长度确定。

在本申请实施例中,所述第一优先级确定模块502具体可以包括如下子模块:

运行走势图生成子模块,用于获取所述各个关联子队列的历史运行数据,根据所述历史运行数据分别生成与所述各个关联子队列相对应的运行走势图;

单位数据处理时间确定子模块,用于将所述运行走势图与预置的多个运行模型对应的运行走势图进行比较,识别出目标模型,确定所述目标模型处理单位数据所需的时间;

第一运行时长计算子模块,用于分别统计所述各个关联子队列当前待处理数据的数据量,根据所述当前待处理数据的数据量和所述目标模型处理单位数据所需的时间,计算所述各个关联子队列将要运行的运行时长。

在本申请实施例中,所述第一优先级确定模块502还可以包括如下子模块:

目标模型确定子模块,用于针对目标子队列,识别已获取到历史运行数据的关联子队列对应的多个目标模型,所述目标子队列为未获取到历史运行数据的关联子队列;

平均时间计算子模块,用于计算所述多个目标模型处理单位数据所需的时间的平均值;

第二运行时长计算子模块,用于根据所述目标子队列待处理数据的数据量和所述多个目标模型处理单位数据所需的时间的平均值,计算所述目标子队列将要运行的运行时长。

在本申请实施例中,所述运行属性信息包括各个关联子队列待运行任务的任务紧急度和任务出错率;

所述第二优先级确定模块503具体可以包括如下子模块:

属性信息量化子模块,用于分别对所述各个关联子队列的任务紧急度和任务出错率进行量化,得到任务紧急度量化值和任务出错率量化值,所述任务紧急度量化值和任务出错率量化值分别具有相应的权重值;

优先级数值计算子模块,用于根据所述权重值,对所述各个关联子队列的任务紧急度量化值和任务出错率量化值进行加权求和,获得所述各个关联子队列的优先级数值;

第二优先级确定子模块,用于根据所述优先级数值确定所述各个关联子队列的第二优先级。

在本申请实施例中,所述子队列资源分配模块505具体可以包括如下子模块:

可分配资源量计算子模块,用于获取所述父队列在单位时间内消耗的资源量,根据所述单位时间内消耗的资源量计算预设运行时间段内的可分配资源量;

子队列资源分配子模块,用于根据所述各个关联子队列的目标优先级,分别将所述预设运行时间段内的可分配资源量分配至所述各个关联子队列;

重新分配子模块,用于在到达所述预设运行时间段对应的结束时间点时,重新计算所述各个关联子队列的目标优先级,依据重新计算的目标优先级将所述父队列在下一预设运行时间段内的可分配资源量分配到所述各个关联子队列。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述得比较简单,相关之处参见方法实施例部分的说明即可。

参照图6,示出了本申请一个实施例的一种服务器的示意图。如图6所示,本实施例的服务器600包括:处理器610、存储器620以及存储在所述存储器620中并可在所述处理器610上运行的计算机程序621。所述处理器610执行所述计算机程序621时实现上述大数据资源的调度方法各个实施例中的步骤,例如图1所示的步骤s101至s105。或者,所述处理器610执行所述计算机程序621时实现上述各装置实施例中各模块/单元的功能,例如图5所示模块501至505的功能。

示例性的,所述计算机程序621可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器620中,并由所述处理器610执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段可以用于描述所述计算机程序621在所述服务器600中的执行过程。例如,所述计算机程序621可以被分割成父队列资源分配模块、第一优先级确定模块、第二优先级确定模块、目标优先级计算模块和子队列资源分配模块,各模块具体功能如下:

父队列资源分配模块,用于为大数据环境下的父队列分配资源,根据所述父队列分配到的资源量,在待分配资源的多个子队列中确定与所述父队列关联的多个关联子队列,其中,所述父队列分配到的资源量与多个关联子队列所需的资源量之间的差值处于预设数值区间;

第一优先级确定模块,用于预估各个关联子队列将要运行的运行时长,根据所述运行时长确定所述各个关联子队列的第一优先级;

第二优先级确定模块,用于根据所述各个关联子队列的运行属性信息确定所述各个关联子队列的第二优先级;

目标优先级计算模块,用于基于所述第一优先级和所述第二优先级,计算所述各个关联子队列的目标优先级;

子队列资源分配模块,用于依据所述各个关联子队列的目标优先级将所述父队列分配到的资源分配至所述各个关联子队列。

所述服务器600可以是桌上型计算机及云端服务器等计算设备。所述服务器600可包括,但不仅限于,处理器610、存储器620。本领域技术人员可以理解,图6仅仅是服务器600的一种示例,并不构成对服务器600的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述服务器600还可以包括输入输出设备、网络接入设备、总线等。

所述处理器610可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

所述存储器620可以是所述服务器600的内部存储单元,例如服务器600的硬盘或内存。所述存储器620也可以是所述服务器600的外部存储设备,例如所述服务器600上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等等。进一步地,所述存储器620还可以既包括所述服务器600的内部存储单元也包括外部存储设备。所述存储器620用于存储所述计算机程序621以及所述服务器600所需的其他程序和数据。所述存储器620还可以用于暂时地存储已经输出或者将要输出的数据。

以上所述实施例仅用以说明本申请的技术方案,而非对其限制。尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1