用于分布式计算的资源分配方法、计算加速方法以及装置的制造方法

文档序号:8319209阅读:427来源:国知局
用于分布式计算的资源分配方法、计算加速方法以及装置的制造方法
【技术领域】
[0001]本申请涉及资源分配领域,具体涉及一种用于分布式计算的资源分配方法和装置。本申请同时提供一种用分布式计算的计算加速方法和装置。
【背景技术】
[0002]随着互联网的发展,人们越来越热衷于网络生活,需要计算机处理的数据量越来越多,数据结构也开始多元化,需要占用的计算资源也越来越多,传统的基于客户/服务器模型的集中计算已经无法承载日趋复杂的网络应用,于是出现了分布式计算。分布式计算主要用于把一个需要占用巨大计算资源的作业分解成若干个子作业,然后为这些子作业分别分配分散的、处于空闲状态的计算资源并进行计算处理,最后把这些计算结果综合起来得到最终的结果。
[0003]目前流行的分布式计算平台,通常采用的是按照参与计算作业的数据文件的长度来分配计算资源的方法,该方法是基于这样一种思路,即:完成一项计算作业占用计算资源的多少与参与计算作业的数据文件的长度成正比,数据文件越大需要占用的计算资源越多,反之越少。该方法的基本步骤是:
[0004]1.确定参加计算作业的数据文件的长度;
[0005]2.用上述数据文件的长度除以一个计算资源单位可以处理的数据文件的长度,即得到需要分配的计算资源单位的数目(如果数据文件的长度小于一个计算资源单位可处理数据文件的长度,则需要分配的计算资源单位数目为I);
[0006]3.按照上述计算结果为计算作业分配计算资源单位。
[0007]这种现有的资源分配方法简便易行,但是也存在比较明显的缺陷。在某些需要对数据文件进行分析或者加工的应用中,例如:数据仓库应用,计算作业的计算量取决于计算的需求和数据文件所包含的具体信息,而与数据文件的长度没有必然联系,也就是说可能出现这样的情况,对大数据文件所进行的计算处理相对简单,需要分配较少的计算资源,而对小数据文件所进行的计算处理相对复杂,需要分配较多的计算资源。在这种情况下,如果按照现有的资源分配方法来分配资源,就会导致为小数据文件分配的计算资源不足,该计算作业长尾而耗时冗长,整个计算作业效率低下。
[0008]例如:在海量的网站登录日志数据集里,需要抓取所有同IP登录的会员,给这些会员两两打上同IP登录的标签,预先设定好每320MB (包括小于320MB的情况)的数据文件将被分配一个计算资源单位(即:一个计算资源单位可以处理的数据文件长度为320MB)。在一个长度为300MB的数据文件中,有10万个会员的登录IP都相同,那么计算量是10万XlO万=100亿,分配320/300=1个计算资源单位,计算作业将耗时较长,例如需要2小时;在另一个长度为450KB的数据文件中,只有15个会员的登录IP相同,那么计算量是15x15=225,将为其分配I个计算资源单位,计算作业耗时很短,例如10秒。由于整个计算作业是按最后一个计算资源单位的完成时间为界限的,所以整个计算作业耗时2小时。从上面的例子明显看到,现有的基于文件长度的资源分配方法导致计算资源的分配是不均衡的,有可能导致计算效率低下。

【发明内容】

[0009]本申请提供一种用于分布式计算的资源分配方法和装置,以解决现有的资源分配方法导致计算资源分配不均衡的问题。本申请同时提供一种用于分布式计算的计算加速方法和装置。
[0010]本申请提供的一种用于分布式计算的资源分配方法,包括:
[0011]获取待执行计算作业的数据文件的实际长度;
[0012]根据所述待执行计算作业的数据文件的计算规模以及所述数据文件的实际长度获取所述数据文件的文件长度的调整因子;
[0013]根据所述调整因子调整所述待执行计算作业的数据文件的长度;
[0014]根据调整后的待执行计算作业的数据文件的长度,分配计算资源。
[0015]可选的,所述获取待执行计算作业的数据文件的实际长度包括:
[0016]通过读取所述数据文件头中的文件长度字段获取所述数据文件的实际长度;或者,
[0017]通过读取计算平台的元数据库中的用于记录所述数据文件长度的字段获取所述数据文件的实际长度。
[0018]可选的,所述根据所述待执行计算作业的数据文件的计算规模以及所述数据文件的实际长度获取所述数据文件的文件长度的调整因子包括:
[0019]估算所述待执行计算作业的数据文件的计算规模;
[0020]根据所述待执行计算作业的数据文件的计算规模估算为所述数据文件分配计算资源单位的预期值;
[0021]根据所述计算资源单位的预期值获取与之对应的计算资源可处理的数据文件长度;
[0022]计算所述可处理的数据文件长度与所述待执行计算作业的数据文件的实际长度的比值,作为所述的调整因子。
[0023]优选的,所述根据所述待执行计算作业的数据文件的计算规模以及所述数据文件的实际长度获取所述数据文件的文件长度的调整因子包括:
[0024]估算所述待执行计算作业的数据文件的计算规模;
[0025]根据所述待执行计算作业的数据文件的计算规模估算为所述数据文件分配计算资源单位的预期值;
[0026]获取计算平台可提供的计算资源单位的数目;
[0027]判断所述计算平台可提供的计算资源单位的数目与所述计算资源单位的预期值的大小;如果所述计算平台可提供的计算资源单位的数目小于所述计算资源单位的预期值,则采用所述计算平台可提供的计算资源单位的数目作为所述计算资源单位的预期值;
[0028]根据所述计算资源单位的预期值获取与之对应的计算资源可处理的数据文件长度;
[0029]计算所述可处理的数据文件长度与所述待执行计算作业的数据文件的实际长度的比值,作为调整因子。
[0030]可选的,所述根据所述调整因子调整所述待执行计算作业的数据文件的长度包括:
[0031]判断所述调整因子大小;
[0032]若所述调整因子大于1,对所述数据文件实施膨胀操作,使所述数据文件的长度增大到所述计算资源可处理的数据文件长度;
[0033]若所述调整因子小于或者等于1,不调整所述数据文件的长度。
[0034]可选的,所述若所述调整因子大于1,对所述数据文件实施膨胀操作,使所述数据文件的长度增大到所述计算资源可处理的数据文件长度包括:
[0035]根据所述调整因子估算需拼接的冗余字段的长度;
[0036]在所述待执行计算作业的数据文件中增加可增删的伪列并拼接所述长度的冗余字段。
[0037]可选的,所述在所述待执行计算作业的数据文件中增加可增删的伪列并拼接所述长度的冗余字段的步骤,采用如下方式实现:
[0038]采用自定义SQL语句的方法,在所述待执行计算作业的数据文件中增加可增删的伪列并拼接所述长度的冗余字段。
[0039]可选的,所述若所述调整因子大于1,对所述数据文件实施膨胀操作,使所述数据文件的长度增大到所述计算资源可处理的数据文件长度包括:
[0040]根据所述调整因子估算关联文件的长度;
[0041]根据所述关联文件的长度,选择满足下述条件的关联文件,该关联文件通过外键与所述待执行计算作业的数据文件进行关联后,所述待执行计算作业的数据文件的长度增大到所述计算资源可处理的数据文件长度;
[0042]采用数据库的关联方法,将所述待执行计算作业的数据文件作为主文件与所述关联文件进行关联拼接。
[0043]可选的,所述根据调整后的待执行计算作业的数据文件的长度,分配计算资源包括:
[0044]获取所述调整后的数据文件的长度与一个计算资源单位可处理的数据文件的长度的比值,以大于或等于该比值的最小整数作为需要分配的计算资源单位的数目;
[0045]为所述数据文件分配相应数目的计算资源单位。
[0046]可选的,所述方法还包括:
[0047]将所述资源分配方法嵌入到计算平台引擎中;
[0048]通过接口函数调用所述嵌入到计算平台引擎中的所述的用于分布式计算的资源分配方法。
[0049]相应的,本申请还提供一种用于分布式计算的资源分配装置,包括:
[0050]文件长度获取单元,用于获取待执行计算作业的数据文件的实际长度;
[0051]调整因子获取单元,用于根据所述待执行计算作业的数据文件的计算规模以及所述数据文件的实际长度获取所述数据文件的文件长度的调整因子;
[0052]文件长度调整单元,用于根据所述调整因子调整所述待执行计算作业的数据文件的长度;
[0053]计算资源分配单元,用于根据调整后的待执行计算作业的数据文件的长度,分配计算资源。
[0054]此外,本申请还提供一种用于分布式计算的计算加速方法,包括:
[0055]获取待执行计算作业的数据文件的实际长度;
[0056]根据所述待执行计算作业的数据文件的计算规模以及所述数据文件的实际长度获取所述数据文件的文件长度的调整因子;
[0057]根据所述调整因子调整所述待执行计算作业的数据文件的长度;
[0058]根据调整后的待执行计算作业的数据文件的长度,分配计算资源;
[0059]利用分配的计算资源,执行所述数据文件的计算作业;
[0060]判断所述调整因子是否大于I ;若是,将执行完计算作业的数据文件恢复为原始数据文件。
[0061]相应的,本申请还提供一种用于分布式计算的计算加速装置,包括:
[0062]文件长度获取单元,用于获取待执行计算作业的数据文件的实际长度;
[0063]调整因子获取单元,用于根据所述待执行计算作业的数据文件的计算规模以及所述数据文件的实际长度获取所述数据文件的文件长度的调整因子;
[0064]文件长度调整单元,
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1