一种任务处理方法和设备技术

技术编号:15541191 阅读:95 留言:0更新日期:2017-06-05 10:42
本申请实施例公开了一种任务处理方法和设备,通过应用本申请实施例所提出的技术方案,结合任务的实际输入数据量和任务所在集群的组的当前限额使用率,对相应的资源进行适应性调整,从而,实现了在大型计算集群中,对运行的任务进行个性化分配计算资源,保障任务得到合理的资源,提高任务执行效率,保证计算集群的资源利用率,提升任务并发度。

Task processing method and equipment

The embodiment of the invention discloses a method and a device for processing tasks, the implementation of technical solutions were proposed through the application of the application, combined with the actual task input data and task of cluster group currently limit the use of the corresponding rate, resources and adjust from, achieved in large computing cluster. Personalized allocation of tasks of computing resources, security tasks get reasonable resources, improve the efficiency of task execution, guarantee the utilization rate of cluster resources, enhance the task concurrency.

【技术实现步骤摘要】
一种任务处理方法和设备
本申请涉及数据处理
,尤其涉及一种任务处理方法和设备。
技术介绍
对于一个繁忙的大型集群系统,每天会有数十万量级次数的临时查询任务,这些临时查询任务中,大部分取数任务基本只会运行一次。在现有的技术方案中,默认情况下,系统认为输入文件大小都是整张表的大小,且一个表可以处理256M的数据,这样就可以控制该任务需要的表数。但是,申请人在实现本申请的过程中发现现有技术中存在以下技术问题:实际应用中,很多的任务都不是取的整张表的所有字段,且很多任务都有很多特殊的操作,如LIMIT(限定)、GBY(聚合)等,如果仍按照默认算法,会导致很多任务分配不到合理的计算资源,进而影响集群任务的吞吐量,导致部分任务由于不能及时得到计算资源而长期等待,进而会对用户体验造成非常恶劣的影响。
技术实现思路
本申请实施例提供了一种任务处理方法及设备,用以对运行的任务进行个性化分配计算资源,保障任务得到合理的资源,提高任务执行效率,从而保证计算集群的资源利用率,提升任务并发度。为此,本申请采用以下技术手段:本申请实施例提供了一种任务处理方法,该方法包括:当任务管理设备接收到任务时,所述任务管理设备判断所述任务的输入数据量是否已经被配置为全表数据量;如果判断结果为否,所述任务管理设备调用内置优化接口,确定所述任务的实际输入数据量;所述任务管理设备判断所述任务所在集群的组的当前限额使用率是否超过预设阈值;如果没有超过,所述任务管理设备判断所述实际输入数据量是否大于全表数据量;如果大于,所述任务管理设备根据所述实际输入数据量,为所述任务分配资源,并执行所述任务。另一方面,本申请实施例还提供了一种任务管理设备,包括:接收模块,用于接收任务;第一判断模块,用于判断所述接收模块所接收到的任务的输入数据量是否已经被配置为全表数据量;确定模块,用于在所述第一判断模块的判断结果为否时,调用内置优化接口,确定所述任务的实际输入数据量;第二判断模块,用于判断所述任务所在集群的组的当前限额使用率是否超过预设阈值;第三判断模块,用于在所述第二判断模块的判断结果为没有超过时,判断所述确定模块所确定的实际输入数据量是否大于全表数据量;处理模块,用于在所述第三判断模块的判断结果为大于时,根据所述确定模块所确定的实际输入数据量,为所述任务分配资源,并执行所述任务。与现有技术相比,本申请实施例所提出的技术方案具有以下有益效果:通过应用本申请实施例所提出的技术方案,结合任务的实际输入数据量和任务所在集群的组的当前限额使用率,对相应的资源进行适应性调整,从而,实现了在大型计算集群中,对运行的任务进行个性化分配计算资源,保障任务得到合理的资源,提高任务执行效率,保证计算集群的资源利用率,提升任务并发度。附图说明图1为本申请实施例提供的一种任务处理方法的流程示意图;图2为本申请实施例提供的一种具体应用场景下的任务处理方法的流程示意图;图3为本申请实施例提供的一种任务管理设备的结构示意图。具体实施方式如
技术介绍
所述,现有的默认处理规则中,系统认为输入文件大小都是整张表的大小,且一个map(映射)可以处理256M的数据,这种做法,没有考虑到计算集群quota(配额)的使用率,没有考虑到任务实际读入的数据量,没有充分利用任务的特点进行自适应分配计算资源,而本申请实施例所提出的技术方案,则解决了这样的问题。下面结合附图对本申请的技术方案进行清楚、完整的描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请的保护范围。参见图1所示,为本申请实施例提供的一种任务处理方法的流程示意图,该方法包括以下步骤:步骤S101、当任务管理设备接收到任务时,所述任务管理设备判断所述任务的输入数据量是否已经被配置为全表数据量。如果判断结果为否,则执行步骤S102;如果判断结果为是,则执行步骤S106。步骤S102、所述任务管理设备调用内置优化接口,确定所述任务的实际输入数据量。在具体的应用场景中,本步骤的实现过程可以具体如下:首先,所述任务管理设备对所述任务进行SQL(一种用于访问和处理数据库的标准的计算机语言)编译,并获取SQL编译之后的任务树。然后,所述任务管理设备判断所述任务树是否为空。如果为空,所述任务管理设备将所述全表数据量作为实际输入数据量。如果不为空,所述任务管理设备对SQL编译之后的数据进行重解析,并依据预设的数据量确定规则,根据重解析后的结果确定实际输入数据量。其中,上述的实际输入数据量的确定过程具体包括:所述任务管理设备对SQL编译之后的关键operator(运算符)进行重解析。所述任务管理设备根据重解析后的结果确定以下四个变量:每个物理表所需字段与全部字段占比a、map含有的distinct(去重)数量b、udf(自定义函数)数量c以及mapjoin(映射关联)数量d。所述任务管理设备根据所述四个变量,按照以下规则确定实际输入数据量:实际输入数据量=全表数据量×a+max(全表数据量×b,全表数据量×I(c)×0.5,全表数据量×I(d)),其中,当x>0时,I(x)=1,否则,I(x)=0;max(x,y,z)表示x、y和z中的最大值。需要说明的是,上述的处理过程以及具体的参数、规则等,均是本申请实施例所给出的一种优选的示例,在保证技术效果的前提下,可以根据实际场景需要进行调整,这样的变化并不会影响本申请的保护范围。步骤S103、所述任务管理设备判断所述任务所在集群的组的当前限额使用率是否超过预设阈值。如果没有超过,则执行步骤S104;如果超过,则执行步骤S105。需要进行说明的是,在实际的应用场景中,预设阈值可以根据需要进行具体数值的确定,参考实践数据,本申请实施例中可以优选的将该预设阈值设置为50%,在实际应用中,在能够保证系统资源使用效率和业务执行效率的前提下,具体阈值数值的变化,并不会影响本申请的保护范围。步骤S104、所述任务管理设备判断所述实际输入数据量是否大于全表数据量。如果不大于,则执行步骤S105;如果大于,则执行步骤S106。步骤S105、所述任务管理设备根据所述实际输入数据量,为所述任务分配资源,并执行所述任务。步骤S106、所述任务管理设备根据所述全表数据量,为所述任务分配资源,并执行所述任务。与现有技术相比,本申请的上述实施例具有以下有益技术效果:通过应用本申请实施例所提出的技术方案,结合任务的实际输入数据量和任务所在集群的组的当前限额使用率,对相应的资源进行适应性调整,从而,实现了在大型计算集群中,对运行的任务进行个性化分配计算资源,保障任务得到合理的资源,提高任务执行效率,保证计算集群的资源利用率,提升任务并发度。下面结合具体的实施例,对本申请实施例所提出的技术方案进行详细的解释说明。如图2所示,为本申请实施例所提出的一种具体应用场景下的任务处理方法的流程示意图,该方法具体包括以下步骤:步骤S201、将该任务提交至系统,对该任务进行SQL解析。步骤S202、判断该任务的输入数据量是否已经被手动设置为全表数据量。如果已经手动设置,则执行步骤S207;如果没有手动设置,则执行步骤S203。步骤S2本文档来自技高网
...
一种任务处理方法和设备

【技术保护点】
一种任务处理方法,其特征在于,该方法包括:当任务管理设备接收到任务时,所述任务管理设备判断所述任务的输入数据量是否已经被配置为全表数据量;如果判断结果为否,所述任务管理设备调用内置优化接口,确定所述任务的实际输入数据量;所述任务管理设备判断所述任务所在集群的组的当前限额使用率是否超过预设阈值;如果没有超过,所述任务管理设备判断所述实际输入数据量是否大于全表数据量;如果大于,所述任务管理设备根据所述全表数据量,为所述任务分配资源,并执行所述任务。

【技术特征摘要】
1.一种任务处理方法,其特征在于,该方法包括:当任务管理设备接收到任务时,所述任务管理设备判断所述任务的输入数据量是否已经被配置为全表数据量;如果判断结果为否,所述任务管理设备调用内置优化接口,确定所述任务的实际输入数据量;所述任务管理设备判断所述任务所在集群的组的当前限额使用率是否超过预设阈值;如果没有超过,所述任务管理设备判断所述实际输入数据量是否大于全表数据量;如果大于,所述任务管理设备根据所述全表数据量,为所述任务分配资源,并执行所述任务。2.如权利要求1所述的方法,其特征在于,所述方法还包括:如果所述任务管理设备判断所述任务的输入数据量已经被配置为全表数据量,所述任务管理设备根据所述全表数据量,为所述任务分配资源,并执行所述任务;如果所述任务管理设备判断所述任务所在集群的组的当前限额使用率超过预设阈值,所述任务管理设备根据所述实际输入数据量,为所述任务分配资源,并执行所述任务;如果所述任务管理设备判断所述实际输入数据量不大于全表数据量,所述任务管理设备根据所述实际输入数据量,为所述任务分配资源,并执行所述任务。3.如权利要求1或2所述的方法,其特征在于,所述预设阈值具体为50%。4.如权利要求1所述的方法,其特征在于,所述任务管理设备调用内置优化接口,确定所述任务的实际输入数据量,具体包括:所述任务管理设备对所述任务进行SQL编译,并获取SQL编译之后的任务树;所述任务管理设备判断所述任务树是否为空;如果为空,所述任务管理设备将所述全表数据量作为实际输入数据量;如果不为空,所述任务管理设备对SQL编译之后的数据进行重解析,并依据预设的数据量确定规则,根据重解析后的结果确定实际输入数据量。5.如权利要求4所述的方法,其特征在于,所述任务管理设备对SQL编译之后的数据进行重解析,并依据预设的数据量确定规则,根据重解析后的结果确定实际输入数据量,具体包括:所述任务管理设备对SQL编译之后的关键预算符operator进行重解析;所述任务管理设备根据重解析后的结果确定以下四个变量:每个物理表所需字段与全部字段占比a、映射map含有的去重distinct数量b、自定义函数udf数量c以及映射关联mapjoin数量d;所述任务管理设备根据所述四个变量,按照以下规则确定实际输入数据量:实际输入数据量=全表数据量×a+max(全表数据量×b,全表数据量×I(c)...

【专利技术属性】
技术研发人员:贾元乔孙伟光苏艳
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

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

1