CN104636397A - 用于分布式计算的资源分配方法、计算加速方法以及装置 - Google Patents
用于分布式计算的资源分配方法、计算加速方法以及装置 Download PDFInfo
- Publication number
- CN104636397A CN104636397A CN201310572431.0A CN201310572431A CN104636397A CN 104636397 A CN104636397 A CN 104636397A CN 201310572431 A CN201310572431 A CN 201310572431A CN 104636397 A CN104636397 A CN 104636397A
- Authority
- CN
- China
- Prior art keywords
- data file
- length
- computational
- computational tasks
- pending
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
Abstract
本申请公开了一种用于分布式计算的资源分配方法和装置,以及一种用分布式计算的计算加速方法和装置。所述用于分布式计算的资源分配方法,包括:获取待执行计算作业的数据文件的实际长度;根据所述待执行计算作业的数据文件的计算规模以及所述数据文件的实际长度获取所述数据文件的文件长度的调整因子;根据所述调整因子调整所述待执行计算作业的数据文件的长度;根据调整后的待执行计算作业的数据文件的长度,分配计算资源。本申请的方法使得分配的计算资源不但能够满足数据文件长度方面的需求,而且能够满足数据文件计算规模方面的需求,在充分合理利用计算资源的同时,还能保证更为有效的对数据文件进行处理。
Description
技术领域
本申请涉及资源分配领域,具体涉及一种用于分布式计算的资源分配方法和装置。本申请同时提供一种用分布式计算的计算加速方法和装置。
背景技术
随着互联网的发展,人们越来越热衷于网络生活,需要计算机处理的数据量越来越多,数据结构也开始多元化,需要占用的计算资源也越来越多,传统的基于客户/服务器模型的集中计算已经无法承载日趋复杂的网络应用,于是出现了分布式计算。分布式计算主要用于把一个需要占用巨大计算资源的作业分解成若干个子作业,然后为这些子作业分别分配分散的、处于空闲状态的计算资源并进行计算处理,最后把这些计算结果综合起来得到最终的结果。
目前流行的分布式计算平台,通常采用的是按照参与计算作业的数据文件的长度来分配计算资源的方法,该方法是基于这样一种思路,即:完成一项计算作业占用计算资源的多少与参与计算作业的数据文件的长度成正比,数据文件越大需要占用的计算资源越多,反之越少。该方法的基本步骤是:
1.确定参加计算作业的数据文件的长度;
2.用上述数据文件的长度除以一个计算资源单位可以处理的数据文件的长度,即得到需要分配的计算资源单位的数目(如果数据文件的长度小于一个计算资源单位可处理数据文件的长度,则需要分配的计算资源单位数目为1);
3.按照上述计算结果为计算作业分配计算资源单位。
这种现有的资源分配方法简便易行,但是也存在比较明显的缺陷。在某些需要对数据文件进行分析或者加工的应用中,例如:数据仓库应用,计算作业的计算量取决于计算的需求和数据文件所包含的具体信息,而与数据文件的长度没有必然联系,也就是说可能出现这样的情况,对大数据文件所进行的计算处理相对简单,需要分配较少的计算资源,而对小数据文件所进行的计算处理相对复杂,需要分配较多的计算资源。在这种情况下,如果按照现有的资源分配方法来分配资源,就会导致为小数据文件分配的计算资源不足,该计算作业长尾而耗时冗长,整个计算作业效率低下。
例如:在海量的网站登录日志数据集里,需要抓取所有同IP登录的会员,给这些会员两两打上同IP登录的标签,预先设定好每320MB(包括小于320MB的情况)的数据文件将被分配一个计算资源单位(即:一个计算资源单位可以处理的数据文件长度为320MB)。在一个长度为300MB的数据文件中,有10万个会员的登录IP都相同,那么计算量是10万x10万=100亿,分配320/300=1个计算资源单位,计算作业将耗时较长,例如需要2小时;在另一个长度为450KB的数据文件中,只有15个会员的登录IP相同,那么计算量是15x15=225,将为其分配1个计算资源单位,计算作业耗时很短,例如10秒。由于整个计算作业是按最后一个计算资源单位的完成时间为界限的,所以整个计算作业耗时2小时。从上面的例子明显看到,现有的基于文件长度的资源分配方法导致计算资源的分配是不均衡的,有可能导致计算效率低下。
发明内容
本申请提供一种用于分布式计算的资源分配方法和装置,以解决现有的资源分配方法导致计算资源分配不均衡的问题。本申请同时提供一种用于分布式计算的计算加速方法和装置。
本申请提供的一种用于分布式计算的资源分配方法,包括:
获取待执行计算作业的数据文件的实际长度;
根据所述待执行计算作业的数据文件的计算规模以及所述数据文件的实际长度获取所述数据文件的文件长度的调整因子;
根据所述调整因子调整所述待执行计算作业的数据文件的长度;
根据调整后的待执行计算作业的数据文件的长度,分配计算资源。
可选的,所述获取待执行计算作业的数据文件的实际长度包括:
通过读取所述数据文件头中的文件长度字段获取所述数据文件的实际长度;或者,
通过读取计算平台的元数据库中的用于记录所述数据文件长度的字段获取所述数据文件的实际长度。
可选的,所述根据所述待执行计算作业的数据文件的计算规模以及所述数据文件的实际长度获取所述数据文件的文件长度的调整因子包括:
估算所述待执行计算作业的数据文件的计算规模;
根据所述待执行计算作业的数据文件的计算规模估算为所述数据文件分配计算资源单位的预期值;
根据所述计算资源单位的预期值获取与之对应的计算资源可处理的数据文件长度;
计算所述可处理的数据文件长度与所述待执行计算作业的数据文件的实际长度的比值,作为所述的调整因子。
优选的,所述根据所述待执行计算作业的数据文件的计算规模以及所述数据文件的实际长度获取所述数据文件的文件长度的调整因子包括:
估算所述待执行计算作业的数据文件的计算规模;
根据所述待执行计算作业的数据文件的计算规模估算为所述数据文件分配计算资源单位的预期值;
获取计算平台可提供的计算资源单位的数目;
判断所述计算平台可提供的计算资源单位的数目与所述计算资源单位的预期值的大小;如果所述计算平台可提供的计算资源单位的数目小于所述计算资源单位的预期值,则采用所述计算平台可提供的计算资源单位的数目作为所述计算资源单位的预期值;
根据所述计算资源单位的预期值获取与之对应的计算资源可处理的数据文件长度;
计算所述可处理的数据文件长度与所述待执行计算作业的数据文件的实际长度的比值,作为调整因子。
可选的,所述根据所述调整因子调整所述待执行计算作业的数据文件的长度包括:
判断所述调整因子大小;
若所述调整因子大于1,对所述数据文件实施膨胀操作,使所述数据文件的长度增大到所述计算资源可处理的数据文件长度;
若所述调整因子小于或者等于1,不调整所述数据文件的长度。
可选的,所述若所述调整因子大于1,对所述数据文件实施膨胀操作,使所述数据文件的长度增大到所述计算资源可处理的数据文件长度包括:
根据所述调整因子估算需拼接的冗余字段的长度;
在所述待执行计算作业的数据文件中增加可增删的伪列并拼接所述长度的冗余字段。
可选的,所述在所述待执行计算作业的数据文件中增加可增删的伪列并拼接所述长度的冗余字段的步骤,采用如下方式实现:
采用自定义SQL语句的方法,在所述待执行计算作业的数据文件中增加可增删的伪列并拼接所述长度的冗余字段。
可选的,所述若所述调整因子大于1,对所述数据文件实施膨胀操作,使所述数据文件的长度增大到所述计算资源可处理的数据文件长度包括:
根据所述调整因子估算关联文件的长度;
根据所述关联文件的长度,选择满足下述条件的关联文件,该关联文件通过外键与所述待执行计算作业的数据文件进行关联后,所述待执行计算作业的数据文件的长度增大到所述计算资源可处理的数据文件长度;
采用数据库的关联方法,将所述待执行计算作业的数据文件作为主文件与所述关联文件进行关联拼接。
可选的,所述根据调整后的待执行计算作业的数据文件的长度,分配计算资源包括:
获取所述调整后的数据文件的长度与一个计算资源单位可处理的数据文件的长度的比值,以大于或等于该比值的最小整数作为需要分配的计算资源单位的数目;
为所述数据文件分配相应数目的计算资源单位。
可选的,所述方法还包括:
将所述资源分配方法嵌入到计算平台引擎中;
通过接口函数调用所述嵌入到计算平台引擎中的所述的用于分布式计算的资源分配方法。
相应的,本申请还提供一种用于分布式计算的资源分配装置,包括:
文件长度获取单元,用于获取待执行计算作业的数据文件的实际长度;
调整因子获取单元,用于根据所述待执行计算作业的数据文件的计算规模以及所述数据文件的实际长度获取所述数据文件的文件长度的调整因子;
文件长度调整单元,用于根据所述调整因子调整所述待执行计算作业的数据文件的长度;
计算资源分配单元,用于根据调整后的待执行计算作业的数据文件的长度,分配计算资源。
此外,本申请还提供一种用于分布式计算的计算加速方法,包括:
获取待执行计算作业的数据文件的实际长度;
根据所述待执行计算作业的数据文件的计算规模以及所述数据文件的实际长度获取所述数据文件的文件长度的调整因子;
根据所述调整因子调整所述待执行计算作业的数据文件的长度;
根据调整后的待执行计算作业的数据文件的长度,分配计算资源;
利用分配的计算资源,执行所述数据文件的计算作业;
判断所述调整因子是否大于1;若是,将执行完计算作业的数据文件恢复为原始数据文件。
相应的,本申请还提供一种用于分布式计算的计算加速装置,包括:
文件长度获取单元,用于获取待执行计算作业的数据文件的实际长度;
调整因子获取单元,用于根据所述待执行计算作业的数据文件的计算规模以及所述数据文件的实际长度获取所述数据文件的文件长度的调整因子;
文件长度调整单元,用于根据所述调整因子调整所述待执行计算作业的数据文件的长度;
计算资源分配单元,用于根据调整后的待执行计算作业的数据文件的长度,分配计算资源;
计算作业执行单元,用于利用分配的计算资源,执行所述数据文件的计算作业;
判断及数据文件恢复单元,用于判断所述调整因子是否大于1;并在所述调整因子大于1时将执行完计算作业的数据文件恢复为原始数据文件。
本申请提供的用于分布式计算的资源分配方法,不但考虑到数据文件的长度而且在分配计算资源之时,估算数据文件涉及的计算规模,并根据计算规模大小调整数据文件的长度,然后根据调整后的数据文件的长度分配计算资源,从而实现为数据文件分配与其计算规模相匹配的计算资源的目的;本方法使得分配的计算资源不但能够满足数据文件长度方面的需求,而且能够满足数据文件计算规模方面的需求,在充分合理利用计算资源的同时,还能保证更为有效的对数据文件进行处理。
本申请提供的用于分布式计算的资源分配方法,还提供了一种优选的实施方式,在根据数据文件的计算规模计算为其分配计算资源单位的预期值时,还要兼顾考虑计算平台可提供的计算资源单位的数目,选取两者中较小的数值作为分配计算资源单位的预期值,即:在计算资源充足的情况下,为数据文件分配与其计算规模相匹配的计算资源;在计算资源不足的情况下,为数据文件分配计算平台可提供的计算资源,从而避免出现因为计算平台的计算资源不足而导致资源分配失败的情况,确保资源分配成功。
本申请提供的用于分布式计算的计算加速方法,在为待执行计算作业的数据文件分配计算资源时,首先估算数据文件涉及的计算规模,并根据计算规模大小调整数据文件的长度,然后根据调整后的数据文件的长度,为数据文件分配与其计算规模相匹配的计算资源,从而加快数据文件参与的计算作业的执行速度,缩短运算时间,避免出现因为计算资源分配不足而导致的计算作业耗时冗长的情况,从而提高整个计算作业的效率。
本申请提供的用于分布式计算的计算加速方法,还提供了一种优选的实施方式,在为待执行计算作业的数据文件分配计算资源时,不仅要考虑数据文件的计算规模,还要兼顾考虑计算平台可提供的计算资源单位的数目,即:在计算资源充足的情况下,为数据文件分配与其计算规模相匹配的计算资源;在计算资源不足的情况下,为数据文件分配计算平台可提供的计算资源,从而确保待执行计算作业的数据文件能够得以执行。
附图说明
图1为本申请的用于分布式计算的资源分配方法的实施例的流程图;
图2为本申请的用于分布式计算的资源分配装置的实施例的示意图;
图3为本申请的用于分布式计算的计算加速方法的实施例的流程图;
图4为本申请的用于分布式计算的计算加速装置的实施例的示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
在本申请中,分别提供了一种用于分布式计算的资源分配方法和装置、以及一种用于分布式计算的计算加速方法和装置。在下面的实施例中逐一进行详细说明。
请参考图1,其为本申请的一种用于分布式计算的资源分配方法的实施例的流程示意图。所述方法包括如下步骤:
步骤101:获取待执行计算作业的数据文件的实际长度。
本实施例的方法,主要涉及分布式计算领域。所谓分布式计算,主要用于把一个需要占用巨大计算资源的作业分解成若干个子作业,然后为这些子作业分别分配分散的、处于空闲状态的计算资源并进行计算处理,最后把这些计算结果综合起来得到最终的结果。
在上述分布式计算中,如何分配计算资源是一个重要的环节。通常,在分布式计算平台中,计算资源的分配是一个计算资源处理的模型,而按照文件大小进行分配是该模型中的一种计算方式,本申请提供的用于分布式计算的资源分配方法,就是基于上述方式的,因此,在实施本方法时,首先要获取待执行计算作业的数据文件的实际长度。
获取数据文件的实际长度,通常可以采用下述两种方式:读取所述数据文件头中的文件长度字段获取所述数据文件的实际长度;或者,读取计算平台的元数据库中的用于记录所述数据文件长度的字段获取所述数据文件的实际长度。在其他的实施方式中,也可以采取其他方式获取待执行计算作业的数据文件的实际长度,具体采用何种方式不是本申请的核心,本申请不作限定。
在本实施例的一个具体例子中,待执行计算作业的数据文件是一个需要作大当量级运算的元数据文件,通过读取计算平台的元数据库中的用于记录所述元数据文件长度的字段,获取所述元数据文件长度为300MB。
步骤102:根据所述待执行计算作业的数据文件的计算规模以及所述数据文件的实际长度获取所述数据文件的文件长度的调整因子。
本实施例中,提供的用于分布式计算的资源分配方法,虽然与现有技术一样,都是根据数据文件的长度分配计算资源,但是本实施例中提供的方法,还要考虑数据文件自身的特性,即:数据文件涉及的计算规模的大小,并根据计算规模大小调整数据文件的长度,实现为其分配与其计算规模相匹配的计算资源的目的。因此,在调整数据文件的长度之前,要根据待执行计算作业的数据文件的计算规模以及该文件的实际长度获取调整其文件长度的调整因子,该过程通过以下6个步骤实现:
1)估算所述待执行计算作业的数据文件的计算规模。
本实施例的一个具体的例子中,待执行的计算作业是:在海量的网站登录日志数据集里,抓取所有同IP登录的会员,给这些会员两两打上同IP登录的标签。当前待执行计算作业的元数据文件中有十万个用户的登录IP都相同,给这些会员两两打上同IP登录的标签,需要执行10万x10万=100亿次处理,生成100亿对会员同IP登录的标签数据,计算规模为100亿。
2)根据所述待执行计算作业的数据文件的计算规模估算为所述数据文件分配计算资源单位的预期值。
根据上述步骤中获取的计算规模,以及在分布式计算平台中每个计算资源单位可以处理的计算规模,计算二者的比值,即为:为所述数据文件分配计算资源单位的预期值。所述每个计算资源单位可以处理的计算规模,可以采用固定的经验值,也可以根据系统的计算资源配置状况、以及待执行计算作业的数据文件所涉及的计算复杂程度的不同,在为待执行计算作业的数据文件分配计算资源之前进行动态调整,具体采用何种方式,不是本申请的核心,本申请不作限定。
在本实施例的一个具体例子中,步骤1)中估算的待执行计算作业的元数据文件的计算规模为:100亿次计算处理,而每个计算资源单位可以处理1亿次的计算量,因此,需要为待执行计算作业的数据文件分配计算资源单位的预期值就是:100亿/1亿=100个。
3)获取计算平台可提供的计算资源单位的数目。
在计算复杂度理论中,计算资源是指,在特定计算模型下,解决特定问题所要消耗的资源,最基本的计算资源是计算时间和计算空间(即:占用的计算内存)。在分布式计算平台中,计算资源的概念是指广义的电脑可用的配备,具体包括软件资源和硬件资源,其中硬件资源包括:计算机资源、处理器资源、存储资源、带宽资源等。这些计算资源被具体地量化,每个可分配的最小计算资源就称为一个计算资源单位,分布式计算平台根据每个计算作业的需求,为每个计算作业分配所需数目的空闲的计算资源单位。如上所述,在不同的实施方式中,计算资源的概念可能会有不同的限定,本申请对此不作限定。
计算平台可提供的计算资源单位的数目,可以存储在元数据库中的相应字段中,也可以存储在用来管理计算资源的特定设备上,并根据计算资源的分配情况进行实时更新。该信息的具体存储方式和维护方式不是本申请的核心,本申请不作限定。
在本实施例的一个具体的例子中,获取的计算平台可提供的计算资源单位的数目是1000。
4)判断所述计算平台可提供的计算资源单位的数目与所述计算资源单位的预期值的大小;如果所述计算平台可提供的计算资源单位的数目小于所述计算资源单位的预期值,则采用所述计算平台可提供的计算资源单位的数目作为所述计算资源单位的预期值。
本申请提供的用于分布式计算的资源分配方法,其核心在于,根据待执行计算作业的数据文件的计算规模,调整所述数据文件的长度,并根据调整后的长度为所述数据文件分配计算资源。因此,在步骤2)中根据所述数据文件的计算规模获取了为所述数据文件分配计算资源单位的预期值后,就可以直接进行后续的计算调整因子、调整数据文件长度等步骤。之所以要在步骤3)中获取计算平台可提供的计算资源单位的数目,并且在本步骤4)中判断所述计算平台可提供的计算资源单位的数目与所述计算资源单位的预期值的大小,是为了获取更优的实施效果。
在分布式计算平台中,计算资源是一种有限的资源,随着计算作业的展开,计算资源单位会被逐渐消耗,可利用的计算资源单位会越来越少,可能会出现这样的情况:可用的空闲的计算资源单位的数目,少于待执行计算作业的数据文件所需的计算资源单位的数目;在这种情况下,无法根据待执行计算作业的数据文件的需求为其分配计算资源,自然就无法启动针对所述数据文件的计算作业。
为了避免出现上述情况,为了使待执行计算作业的数据文件能够顺利地分配到资源,从而开始后续的计算作业,本申请提供的方法提供了一种优选的实施方式,即在根据所述数据文件的计算规模估算计算资源单位的预期值之后,还要兼顾考虑分布式计算平台可提供的计算资源单位的数目,如果所述计算平台可提供的计算资源单位的数目小于所述计算资源单位的预期值,则采用所述计算平台可提供的计算资源单位的数目作为所述计算资源单位的预期值。
这样,在计算资源充足的情况下,可以为所述数据文件分配与其计算规模相匹配的计算资源;在计算资源不足的情况下,可以为所述数据文件分配计算平台可提供的计算资源单位,从而保证计算作业得以执行。
在本实施例的一个具体的例子中,步骤2)根据所述元数据文件的计算规模估算计算资源单位的预期值为100,步骤3)中获取的计算平台可提供的计算资源单位的数目是1000,说明当前计算平台的计算资源是充足的,因此所述计算资源单位的预期值仍然为100,不用根据计算平台可提供的计算资源单位的数目进行重置。
5)根据所述计算资源单位的预期值获取与之对应的计算资源可处理的数据文件长度。
上述步骤2)中,根据所述待执行计算作业的数据文件的计算规模估算出了为所述数据文件分配计算资源单位的预期值,用所述计算资源单位的预期值乘以一个计算资源单位可以处理的数据文件的长度,就可以获取与所述计算资源单位的预期值对应的计算资源可处理的数据文件长度。
所述一个计算资源单位可以处理的数据文件的长度,可以采用固定的经验值,也可以根据待执行计算作业的数据文件所涉及的计算复杂程度,进行动态调整。具体设置方法和取值,本申请不作限定。
在本实施例的一个具体的例子中,为所述元数据文件分配计算资源单位的预期值为100,一个计算资源单位可以处理的数据文件长度为320MB,两者相乘,估算出预期分配的100个计算资源单位可处理的元数据文件长度为320MB x100=31.25GB。
6)计算所述可处理的数据文件长度与所述待执行计算作业的数据文件的实际长度的比值,作为调整因子。
通过上述步骤5),已经获取了预计分配给所述待执行计算作业的数据文件的计算资源单位可处理的数据文件长度,在本步骤中,计算所述数据文件长度与所述待执行计算作业的数据文件的实际长度的比值,即得到对所述待执行计算作业的数据文件的文件长度进行调整的调整因子。
在本实施例的一个具体的例子中,预计分配给所述元数据文件的100个计算资源单位可处理的元数据文件长度为31.25GB,在步骤101中,获取待执行计算作业的元数据文件的实际长度为300MB,因此,对所述待执行计算作业的元数据文件的文件长度进行调整的调整因子为:31.25GB/300MB=106.7。
步骤103:根据所述调整因子调整所述待执行计算作业的数据文件的长度。
首先要判断所述调整因子大小。调整因子是一个比值,即:预计分配给所述待执行计算作业的数据文件的计算资源单位可处理的数据文件长度,与待执行计算作业的数据文件的实际长度的比值。因此调整因子的取值可能有三种情况:大于1,等于1和小于1,针对这三种情况,后续要进行不同的处理。
如果所述调整因子小于或者等于1,说明根据待执行计算作业的数据文件的实际长度,采用常规的计算资源分配方法,就可以为其分配足够的计算资源,因此这两种情况下不需要调整所述数据文件的长度。
如果所述调整因子大于1,说明待执行计算作业的数据文件是一个相对大当量级的数据文件,如果根据所述数据文件的实际长度为其分配计算资源单位,分配的结果与其计算规模是不匹配的,该计算作业将耗时较长。因此,采用本申请提供的方法,当调整因子大于1时,要对所述数据文件实施膨胀操作,使所述数据文件的长度增大到预计为其分配的计算资源可处理的数据文件长度。
在本实施例中,根据计算得到的调整因子,采用增加伪列并拼接冗余字段的方式对所述元数据文件实施膨胀操作,使所述元数据文件的长度增大到所述计算资源可处理的数据文件的长度。
首先估算需拼接的冗余字段的长度。
在本实施例的一个具体例子中,调整因子是106.7,所述元数据文件长度为300MB,总共有10万条数据记录,每条数据记录的长度为300MB/10万=3.1KB,如果膨胀106.7倍,每条数据记录需要拼接一个长度为(3.1KB x106.7)-3.1KB=327.7KB的冗余字段。
然后,在所述待执行计算作业的数据文件中增加可增删的伪列并拼接所述长度的冗余字段。
在本实施例的一个具体例子中,采用自定义SQL的方法在所述元数据文件增加伪列并拼接所述长度的冗余字段。具体采用“alter table[table_name]add[column_name]type...”这样的SQL语句在所述元数据文件中增加一个伪列,然后为每个数据记录拼接一个长度为327.7KB的冗余字段,在执行上述增加伪列的操作时,要设置所述伪列是可增可删的,这样便于在完成计算资源的分配后,还原原始数据文件。
对数据文件实施膨胀操作,除了可以采用上述增加伪列并拼接冗余字段的方式,还可以采用数据库的关联Join方法来实现。
通过数据库的关联操作,可以将数据库中的两个表通过关联键建立联系,从表中的列按照关联规则拼接到主表中,从而增大主表数据文件的长度。
采用关联方法,要首先根据所述调整因子估算关联文件的长度;然后根据所述关联文件的长度,选择满足下述条件的关联文件:该关联文件通过外键与所述待执行计算作业的数据文件进行关联后,所述待执行计算作业的数据文件的长度增大到所述计算资源可处理的数据文件长度;最后,采用数据库的关联方法,将所述待执行计算作业的数据文件作为主文件与所述关联文件进行关联拼接。
当然在其他的实施方式中,并不局限于采用上述自定义SQL的方法或者是关联方法实现待执行计算作业的数据文件的膨胀操作,也可以采用其他能实现所述功能的方法,本申请对此不做限定。
步骤104:根据调整后的待执行计算作业的数据文件的长度,分配计算资源。
首先,计算为待执行计算作业的数据文件分配资源单位的数目。
步骤103中,已经对待执行计算作业的数据文件执行了必要的膨胀操作,完成了调整所述数据文件长度的操作,在本步骤中获取所述调整后的数据文件的长度与一个计算资源单位可处理的数据文件的长度的比值,以大于或等于该比值的最小整数作为需要分配的计算资源单位的数目。
在本实施例的一个具体的例子中,执行完步骤103所述的字段拼接操作后,所述调整后的元数据文件的长度为31.25GB,而预先设置的一个计算资源单位可以处理的数据文件的长度为320MB,那么需要为本实施例中的元数据文件分配的计算资源单位的数目为:31.25GB/320MB=100。
然后,为所述数据文件分配相应数目的计算资源单位。
在本实施例的一个具体的例子中,按照分布式计算平台的计算资源分配方法,为所述待执行计算作业的元数据文件分配100个计算资源单位。
本申请提供的用于分布式计算的资源分配方法,一方面考虑到数据文件的长度,并作为分配计算资源的依据之一,而且,进一步的,要估算数据文件涉及的计算规模,并根据计算规模调整数据文件的长度,从而实现为数据文件分配与其计算规模相匹配的计算资源的目的。从而使得分配的计算资源不但能够满足数据文件长度方面的需求,而且能够满足数据文件计算规模方面的需求,在充分合理利用计算资源的同时,还能保证更为有效的对数据文件进行处理。
在上述的实施例中,提供了一种用于分布式计算的资源分配方法,与之相对应的,本申请还提供一种用于分布式计算的资源分配装置。请参看图2,其为本申请一种用于分布式计算的资源分配装置的实施例示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。
本实施例的一种用于分布式计算的资源分配装置,包括:文件长度获取单元201,用于获取待执行计算作业的数据文件的实际长度;调整因子获取单元202,用于根据所述待执行计算作业的数据文件的计算规模以及数据文件的实际长度获取所述数据文件的文件长度的调整因子;文件长度调整单元203,用于根据所述调整因子调整所述待执行计算作业的数据文件的长度;计算资源分配单元204,用于根据调整后的待执行计算作业的数据文件的长度,分配计算资源。
可选的,所述文件长度获取单元,具体用于通过读取所述数据文件头中的文件长度字段获取所述数据文件的实际长度;或者通过读取计算平台的元数据库中的用于记录所述数据文件长度的字段获取所述数据文件的实际长度。
可选的,所述调整因子获取单元包括:计算规模估算子单元,用于估算所述待执行计算作业的数据文件的计算规模;计算资源估算子单元,用于根据所述待执行计算作业的数据文件的计算规模估算为所述数据文件分配计算资源单位的预期值;可处理文件长度获取子单元,用于根据计算资源单位的预期值获取与之对应的计算资源可处理的数据文件长度;调整因子计算子单元,用于计算所述可处理的数据文件长度与所述待执行计算作业的数据文件的实际长度的比值,作为所述的调整因子。
可选的,所述调整因子获取单元包括:计算规模估算子单元,用于估算所述待执行计算作业的数据文件的计算规模;计算资源估算子单元,用于根据所述待执行计算作业的数据文件的计算规模估算为所述数据文件分配计算资源单位的预期值;可用资源获取子单元,用于获取计算平台可提供的计算资源单位的数目;资源判断子单元,用于判断所述计算平台可提供的计算资源单位的数目与所述计算资源单位的预期值的大小;如果所述计算平台可提供的计算资源单位的数目小于所述计算资源单位的预期值,则采用所述计算平台可提供的计算资源单位的数目作为所述计算资源单位的预期值;可处理文件长度获取子单元,用于根据所述计算资源单位的预期值获取与之对应的计算资源可处理的数据文件长度;调整因子计算子单元,用于计算所述可处理的数据文件长度与所述待执行计算作业的数据文件的实际长度的比值,作为调整因子。
可选的,所述文件长度调整单元包括:调整因子判断子单元,用于判断所述调整因子是否大于1;膨胀操作执行子单元,用于在所述调整因子大于1时,对所述数据文件实施膨胀操作,使所述数据文件的长度增大到所述计算资源可处理的数据文件长度;并在所述调整因子小于或者等于1时,不调整所述数据文件的长度。
可选的,所述膨胀操作执行子单元包括:拼接长度计算子单元,用于根据所述调整因子估算需拼接的冗余字段的长度;字段拼接子单元,用于在所述待执行计算作业的数据文件中增加可增删的伪列并拼接所述长度的冗余字段。
可选的,所述字段拼接子单元,具体用于采用自定义SQL语句的方法,在所述待执行计算作业的数据文件中增加可增删的伪列并拼接所述长度的冗余字段。
可选的,所述膨胀操作执行子单元包括:关联文件长度估算子单元,用于根据所述调整因子估算关联文件的长度;关联文件选择子单元,用于根据所述关联文件的长度,选择满足下述条件的关联文件,该关联文件通过外键与所述待执行计算作业的数据文件进行关联后,所述待执行计算作业的数据文件的长度增大到所述计算资源可处理的数据文件长度;关联执行子单元,用于采用数据库的关联方法,将所述待执行计算作业的数据文件作为主文件与所述关联文件进行关联拼接。
可选的,所述计算资源分配单元包括:资源数目获取子单元,用于获取所述调整后的数据文件的长度与一个计算资源单位可处理的数据文件的长度的比值,以大于或等于该比值的最小整数作为需要分配的计算资源单位的数目;资源分配执行子单元,用于为所述数据文件分配相应数目的计算资源单位。
与上述的用于分布式计算的资源分配方法相对应的,本申请还提供一种用于分布式计算的计算加速方法。请参考图3,其为本申请提供的一种用于分布式计算的计算加速方法的实施例的流程示意图,本实施例与第一实施例步骤相同的部分不再赘述,下面重点描述不同之处。本申请提供的一种用于分布式计算的计算加速方法包括:
步骤301:获取待执行计算作业的数据文件的实际长度。
在本实施例的一个具体例子中,待执行计算作业的数据文件是一个需要作大当量级运算的元数据文件,通过读取计算平台的元数据库中的用于记录所述元数据文件长度的字段,获取所述元数据文件长度为300MB。
步骤302:根据所述待执行计算作业的数据文件的计算规模以及所述数据文件的实际长度获取所述数据文件的文件长度的调整因子。
本实施例中,提供的用于分布式计算的计算加速方法,在为待执行计算作业的数据文件分配计算资源时,要考虑数据文件自身的特性,即:数据文件涉及的计算规模的大小,并根据计算规模大小调整数据文件的长度,实现为其分配与其计算规模相匹配的计算资源的目的。因此,在调整数据文件的长度之前,要根据待执行计算作业的数据文件的计算规模以及该文件的实际长度获取调整其文件长度的调整因子,该过程通过以下6个步骤实现:
1)估算所述待执行计算作业的数据文件的计算规模。
本实施例的一个具体例子中,待执行的计算作业是:在海量的网站登录日志数据集里,抓取所有同IP登录的会员,给这些会员两两打上同IP登录的标签。当前待执行计算作业的元数据文件中有十万个用户的登录IP都相同,给这些会员两两打上同IP登录的标签,需要执行10万x10万=100亿次处理,生成100亿对会员同IP登录的标签数据,计算规模为100亿。
2)根据所述待执行计算作业的数据文件的计算规模估算为所述数据文件分配计算资源单位的预期值。
根据上述步骤中获取的计算规模,以及在分布式计算平台中每个计算资源单位可以处理的计算规模,计算二者的比值,即为:为所述数据文件分配计算资源单位的预期值。
在本实施例的一个具体例子中,步骤1)中估算的待执行计算作业的元数据文件的计算规模为:100亿次计算处理,而每个计算资源单位可以处理1亿次的计算量,因此,需要为待执行计算作业的数据文件分配计算资源单位的预期值就是:100亿/1亿=100个。
3)获取计算平台可提供的计算资源单位的数目。
在本实施例的一个具体例子中,获取的计算平台可提供的计算资源单位的数目是1000。
4)判断所述计算平台可提供的计算资源单位的数目与所述计算资源单位的预期值的大小;如果所述计算平台可提供的计算资源单位的数目小于所述计算资源单位的预期值,则采用所述计算平台可提供的计算资源单位的数目作为所述计算资源单位的预期值。
本申请提供的用于分布式计算的资源分配方法,其核心在于,根据待执行计算作业的数据文件的计算规模,调整所述数据文件的长度,并根据调整后的长度为所述数据文件分配计算资源。因此,在步骤2)中根据所述数据文件的计算规模获取了为所述数据文件分配计算资源单位的预期值后,就可以直接进行后续的计算调整因子、调整数据文件长度等步骤。之所以要在步骤3)中获取计算平台可提供的计算资源单位的数目,并且在本步骤4)中判断所述计算平台可提供的计算资源单位的数目与所述计算资源单位的预期值的大小,是为了获取更优的实施效果。
在分布式计算平台中,计算资源是一种有限的资源,随着计算作业的展开,计算资源单位会被逐渐消耗,可利用的计算资源单位会越来越少,可能会出现这样的情况:可用的空闲的计算资源单位的数目,少于待执行计算作业的数据文件所需的计算资源单位的数目;在这种情况下,无法根据待执行计算作业的数据文件的需求为其分配计算资源,自然就无法启动针对所述数据文件的计算作业。
为了避免出现上述情况,为了使待执行计算作业的数据文件能够顺利地分配到资源,从而开始后续的计算作业,本申请提供的方法提供了一种优选的实施方式,即在根据所述数据文件的计算规模估算计算资源单位的预期值之后,还要兼顾考虑分布式计算平台可提供的计算资源单位的数目,如果所述计算平台可提供的计算资源单位的数目小于所述计算资源单位的预期值,则采用所述计算平台可提供的计算资源单位的数目作为所述计算资源单位的预期值。
这样,在计算资源充足的情况下,可以为所述数据文件分配与其计算规模相匹配的计算资源;在计算资源不足的情况下,可以为所述数据文件分配计算平台可提供的计算资源单位,从而保证计算作业得以执行。
在本实施例的一个具体例子中,步骤2)根据所述元数据文件的计算规模估算计算资源单位的预期值为100,步骤3)中获取的计算平台可提供的计算资源单位的数目是1000,说明当前计算平台的计算资源是充足的,因此所述计算资源单位的预期值仍然为100,不用根据计算平台可提供的计算资源单位的数目进行重置。
5)根据所述计算资源单位的预期值获取与之对应的计算资源可处理的数据文件长度。
上述步骤2)中,根据所述待执行计算作业的数据文件的计算规模估算出了为所述数据文件分配计算资源单位的预期值,用所述计算资源单位的预期值乘以一个计算资源单位可以处理的数据文件的长度,就可以获取与所述计算资源单位的预期值对应的计算资源可处理的数据文件长度。
在本实施例的一个具体例子中,为所述元数据文件分配计算资源单位的预期值为100,一个计算资源单位可以处理的数据文件长度为320MB,两者相乘,估算出预期分配的100个计算资源单位可处理的元数据文件长度为320MB x100=31.25GB。
6)计算所述可处理的数据文件长度与所述待执行计算作业的数据文件的实际长度的比值,作为调整因子。
在本实施例的一个具体例子中,预计分配给所述元数据文件的100个计算资源单位可处理的元数据文件长度为31.25GB,在步骤301中,获取待执行计算作业的元数据文件的实际长度为300MB,因此,对所述待执行计算作业的元数据文件的文件长度进行调整的调整因子为:31.25GB/300MB=106.7。
步骤303:根据所述调整因子调整所述待执行计算作业的数据文件的长度。
首先要判断所述调整因子大小。
如果所述调整因子小于或者等于1,说明根据待执行计算作业的数据文件的实际长度,采用常规的计算资源分配方法,就可以为其分配足够的计算资源,因此这两种情况下不需要调整所述数据文件的长度。
如果所述调整因子大于1,要对所述数据文件实施膨胀操作,使所述数据文件的长度增大到预计为其分配的计算资源可处理的数据文件长度。
本实施例中,根据计算得到的调整因子,采用增加伪列并拼接冗余字段的方式对所述元数据文件实施膨胀操作,使所述元数据文件的长度增大到所述计算资源可处理的数据文件的长度。
首先估算需拼接的冗余字段的长度。
在本实施例的一个具体例子中,调整因子是106.7,所述元数据文件长度为300MB,总共有10万条数据记录,每条数据记录的长度为300MB/10万=3.1KB,如果膨胀106.7倍,每条数据记录需要拼接一个长度为(3.1KB x106.7)-3.1KB=327.7KB的冗余字段。
然后,在所述待执行计算作业的数据文件中增加可增删的伪列并拼接所述长度的冗余字段。
在本实施例的一个具体例子中,采用自定义SQL的方法在所述元数据文件增加伪列并拼接所述长度的冗余字段。具体采用“alter table[table_name]add[column_name]type...”这样的SQL语句在所述元数据文件中增加一个伪列,然后为每个数据记录拼接一个长度为327.7KB的冗余字段,在执行上述增加伪列的操作时,要设置所述伪列是可增可删的,这样便于在完成计算资源的分配后,还原原始数据文件。
对数据文件实施膨胀操作,除了可以采用上述增加伪列并拼接冗余字段的方式,还可以采用数据库的关联Join方法来实现。
通过数据库的关联操作,可以将数据库中的两个表通过关联键建立联系,从表中的列按照关联规则拼接到主表中,从而增大主表数据文件的长度。
采用关联方法,要首先根据所述调整因子估算关联文件的长度;然后根据所述关联文件的长度,选择满足下述条件的关联文件:该关联文件通过外键与所述待执行计算作业的数据文件进行关联后,所述待执行计算作业的数据文件的长度增大到所述计算资源可处理的数据文件长度;最后,采用数据库的关联方法,将所述待执行计算作业的数据文件作为主文件与所述关联文件进行关联拼接。
当然在其他的实施方式中,并不局限于采用上述自定义SQL的方法或者是关联方法实现待执行计算作业的数据文件的膨胀操作,也可以采用其他能实现所述功能的方法,本申请对此不做限定。
步骤304:根据调整后的待执行计算作业的数据文件的长度,分配计算资源。
首先,计算为待执行计算作业的数据文件分配资源单位的数目。
步骤303中,已经对待执行计算作业的数据文件执行了必要的膨胀操作,完成了调整所述数据文件长度的操作,在本步骤中获取所述调整后的数据文件的长度与一个计算资源单位可处理的数据文件的长度的比值,以大于或等于该比值的最小整数作为需要分配的计算资源单位的数目。
在本实施例的一个具体例子中,执行完步骤303所述的字段拼接操作后,所述调整后的元数据文件的长度为31.25GB,而预先设置的一个计算资源单位可以处理的数据文件的长度为320MB,那么需要为本实施例中的元数据文件分配的计算资源单位的数目为:31.25GB/320MB=100。
然后,为所述数据文件分配相应数目的计算资源单位。
在本实施例的一个具体例子中,按照分布式计算平台的计算资源分配方法,为所述待执行计算作业的元数据文件分配100个计算资源单位。
步骤305:利用分配的计算资源,执行所述数据文件的计算作业。
分布式计算项目通常都涉及很庞大的计算量,仅仅由单一的计算设备在一个能够接受的时间内完成整个计算作业通常是不可能的,因此要将整个计算项目划分成若干个子作业,为每个子作业分配可用的闲置资源并进行计算。
在本实施例的一个具体例子中,涉及的分布式计算项目,是在海量的网站登录日志数据集里,抓取所有相同IP登录的会员,并给这些会员两两打上相同IP登录的标签,计算量很庞大。例如,本实施例中所述元数据文件中包含10万个会员的登录IP都是相同的,因此要执行100亿次打标签的操作。由于本申请提供的分布式计算的计算加速方法,采用根据所述元数据文件的计算规模调整所述元数据文件的长度、并根据调整后的长度分配计算资源的方法,为所述元数据文件分配了充足的计算资源单位:100个计算资源单位,因此可以有效加快所述元数据文件参与的计算作业的执行速度。
步骤306:判断所述调整因子是否大于1;若是,将执行完计算作业的数据文件恢复为原始数据文件。
本实施例提供的用于分布式计算平台的计算加速方法,在进行资源分配阶段,有可能对所述待执行计算作业的数据文件实施了膨胀操作,为了保持所述数据文件的原始内容,同时为了节省计算平台的存储空间,在完成计算作业后,还应该恢复恢复所述数据文件的原始内容,即:删除因为实施数据膨胀,而向所述数据文件中添加的数据。
首先,判断所述调整因子是否大于1;若是,执行后续的恢复原始数据文件的操作;若否,不需要执行后续的恢复原始数据文件的操作。
然后,对于调整因子大于1的情况,执行恢复原始数据文件的操作。在本实施例的一个具体例子中,因为所述调整因子为106.7,需要对调整长度后的元数据文件实施恢复操作,采用类似“alter table[table_name]drop column[column_name]”这样的SQL语句从调整长度后的元数据文件中删除实施膨胀操作时增加的伪列。
在其他实施方式中,如果实施数据文件膨胀操作时,采用的是数据库的关联join方法,那么在本步骤中,要删除所述数据文件因为与从属关联文件进行关联拼接,而新增的列。
在本实施例的一个具体例子中,采用了自定义SQL的方法删除伪列,在其他实施方式中,也可以采用其他方法,只要达到还原原始数据文件的目的即可,本申请不对具体方法做出限定。
本申请提供的用于分布式计算的计算加速方法,在为待执行计算作业的数据文件分配计算资源时,首先估算数据文件涉及的计算规模,并根据计算规模大小调整数据文件的长度,然后根据调整后的数据文件的长度,为数据文件分配与其计算规模相匹配的计算资源,从而加快数据文件参与的计算作业的执行速度,缩短运算时间,避免出现因为计算资源分配不足而导致的耗时冗长的情况,从而提高整个计算作业的效率。
在上述的实施例中,提供了一种用于分布式计算的计算加速方法,与之相对应的,本申请还提供一种用于分布式计算的计算加速装置。请参看图4,其为本申请一种用于分布式计算的计算加速装置的实施例示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。
本实施例的一种用于分布式计算的计算加速装置,包括:文件长度获取单元401,用于获取待执行计算作业的数据文件的实际长度;调整因子获取单元402,用于根据所述待执行计算作业的数据文件的计算规模以及所述数据文件的实际长度获取所述数据文件的文件长度的调整因子;文件长度调整单元403,用于根据所述调整因子调整所述待执行计算作业的数据文件的长度;计算资源分配单元404,用于根据调整后的待执行计算作业的数据文件的长度,分配计算资源;计算作业执行单元405,用于利用分配的计算资源,执行所述数据文件的计算作业;判断及数据文件恢复单元406,用于判断所述调整因子是否大于1;并在所述调整因子大于1时将执行完计算作业的数据文件恢复为原始数据文件。
可选的,所述文件长度获取单元,具体用于通过读取所述数据文件头中的文件长度字段获取所述数据文件的实际长度;或者通过读取计算平台的元数据库中的用于记录所述数据文件长度的字段获取所述数据文件的实际长度。
可选的,所述调整因子获取单元包括:计算规模估算子单元,用于估算所述待执行计算作业的数据文件的计算规模;计算资源估算子单元,用于根据所述待执行计算作业的数据文件的计算规模,估算为所述数据文件分配计算资源单位的预期值;可处理文件长度获取子单元,用于根据所述计算资源单位的预期值,获取与之对应的计算资源可处理的数据文件长度;调整因子计算子单元,用于计算所述可处理的数据文件长度与所述待执行计算作业的数据文件的实际长度的比值,作为所述的调整因子。
可选的,所述调整因子获取单元包括:计算规模估算子单元,用于估算所述待执行计算作业的数据文件的计算规模;计算资源估算子单元,用于根据所述待执行计算作业的数据文件的计算规模估算为所述数据文件分配计算资源单位的预期值;可用资源获取子单元,用于获取计算平台可提供的计算资源单位的数目;资源判断子单元,用于判断所述计算平台可提供的计算资源单位的数目与所述计算资源单位的预期值的大小;如果所述计算平台可提供的计算资源单位的数目小于所述计算资源单位的预期值,则采用所述计算平台可提供的计算资源单位的数目作为所述计算资源单位的预期值;可处理文件长度获取子单元,根据所述计算资源单位的预期值获取与之对应的计算资源可处理的数据文件长度;调整因子计算子单元,计算所述可处理的数据文件长度与所述待执行计算作业的数据文件的实际长度的比值,作为调整因子。
可选的,所述文件长度调整单元包括:调整因子判断子单元,用于判断所述调整因子是否大于1;膨胀操作执行子单元,用于在所述调整因子大于1时,对所述数据文件实施膨胀操作,使所述数据文件的长度增大到所述计算资源可处理的数据文件长度;并在所述调整因子小于或者等于1时,不调整所述数据文件的长度。
可选的,所述膨胀操作执行子单元包括:拼接长度计算子单元,用于根据所述调整因子估算需拼接的冗余字段的长度;字段拼接子单元,用于在所述待执行计算作业的数据文件中增加可增删的伪列并拼接所述长度的冗余字段;
相应的,所述判断及数据文件恢复单元,将执行完计算作业的数据文件恢复为原始数据文件,是指删除所述字段拼接子单元在所述数据文件中增加的可增删的伪列。
可选的,所述字段拼接子单元,具体用于采用自定义SQL语句的方法,在所述待执行计算作业的数据文件中增加可增删的伪列并拼接所述长度的冗余字段。
相应的,所述判断及数据文件恢复单元,将执行完计算作业的数据文件恢复为原始数据文件,是指采用自定义SQL语句的方法,删除所述字段拼接子单元在所述数据文件中增加的可增删的伪列。
可选的,所述膨胀操作执行子单元包括:关联文件长度估算子单元,用于根据所述调整因子估算关联文件的长度;关联文件选择子单元,用于根据所述关联文件的长度,选择满足下述条件的关联文件,该关联文件通过外键与所述待执行计算作业的数据文件进行关联后,所述待执行计算作业的数据文件的长度增大到所述计算资源可处理的数据文件长度;关联执行子单元,用于采用数据库的关联方法,将所述待执行计算作业的数据文件作为主文件与所述关联文件进行关联拼接。
相应的,所述判断及数据文件恢复单元,将执行完计算作业的数据文件恢复为原始数据文件,是指删除所述关联执行子单元执行的关联操作在所述数据文件中增加的列。
可选的,所述计算资源分配单元包括:资源数目获取子单元,用于获取所述调整后的数据文件的长度与一个计算资源单位可处理的数据文件的长度的比值,以大于或等于该比值的最小整数作为需要分配的计算资源单位的数目;资源分配执行子单元,用于为所述数据文件分配相应数目的计算资源单位。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
Claims (13)
1.一种用于分布式计算的资源分配方法,其特征在于,包括:
获取待执行计算作业的数据文件的实际长度;
根据所述待执行计算作业的数据文件的计算规模以及所述数据文件的实际长度获取所述数据文件的文件长度的调整因子;
根据所述调整因子调整所述待执行计算作业的数据文件的长度;
根据调整后的待执行计算作业的数据文件的长度,分配计算资源。
2.根据权利要求1所述的用于分布式计算的资源分配方法,其特征在于,所述获取待执行计算作业的数据文件的实际长度包括:
通过读取所述数据文件头中的文件长度字段获取所述数据文件的实际长度;或者,
通过读取计算平台的元数据库中的用于记录所述数据文件长度的字段获取所述数据文件的实际长度。
3.根据权利要求1所述的用于分布式计算的资源分配方法,其特征在于,所述根据所述待执行计算作业的数据文件的计算规模以及所述数据文件的实际长度获取所述数据文件的文件长度的调整因子包括:
估算所述待执行计算作业的数据文件的计算规模;
根据所述待执行计算作业的数据文件的计算规模估算为所述数据文件分配计算资源单位的预期值;
根据所述计算资源单位的预期值获取与之对应的计算资源可处理的数据文件长度;
计算所述可处理的数据文件长度与所述待执行计算作业的数据文件的实际长度的比值,作为所述的调整因子。
4.根据权利要求1所述的用于分布式计算的资源分配方法,其特征在于,所述根据所述待执行计算作业的数据文件的计算规模以及所述数据文件的实际长度获取所述数据文件的文件长度的调整因子包括:
估算所述待执行计算作业的数据文件的计算规模;
根据所述待执行计算作业的数据文件的计算规模估算为所述数据文件分配计算资源单位的预期值;
获取计算平台可提供的计算资源单位的数目;
判断所述计算平台可提供的计算资源单位的数目与所述计算资源单位的预期值的大小;如果所述计算平台可提供的计算资源单位的数目小于所述计算资源单位的预期值,则采用所述计算平台可提供的计算资源单位的数目作为所述计算资源单位的预期值;
根据所述计算资源单位的预期值获取与之对应的计算资源可处理的数据文件长度;
计算所述可处理的数据文件长度与所述待执行计算作业的数据文件的实际长度的比值,作为调整因子。
5.根据权利要求3或4所述的用于分布式计算的资源分配方法,其特征在于,所述根据所述调整因子调整所述待执行计算作业的数据文件的长度包括:
判断所述调整因子大小;
若所述调整因子大于1,对所述数据文件实施膨胀操作,使所述数据文件的长度增大到所述计算资源可处理的数据文件长度;
若所述调整因子小于或者等于1,不调整所述数据文件的长度。
6.根据权利要求5所述的用于分布式计算的资源分配方法,其特征在于,所述若所述调整因子大于1,对所述数据文件实施膨胀操作,使所述数据文件的长度增大到所述计算资源可处理的数据文件长度包括:
根据所述调整因子估算需拼接的冗余字段的长度;
在所述待执行计算作业的数据文件中增加可增删的伪列并拼接所述长度的冗余字段。
7.根据权利要求6所述的用于分布式计算的资源分配方法,其特征在于,所述在所述待执行计算作业的数据文件中增加可增删的伪列并拼接所述长度的冗余字段的步骤,采用如下方式实现:
采用自定义SQL语句的方法,在所述待执行计算作业的数据文件中增加可增删的伪列并拼接所述长度的冗余字段。
8.根据权利要求5所述的用于分布式计算的资源分配方法,其特征在于,所述若所述调整因子大于1,对所述数据文件实施膨胀操作,使所述数据文件的长度增大到所述计算资源可处理的数据文件长度包括:
根据所述调整因子估算关联文件的长度;
根据所述关联文件的长度,选择满足下述条件的关联文件,该关联文件通过外键与所述待执行计算作业的数据文件进行关联后,所述待执行计算作业的数据文件的长度增大到所述计算资源可处理的数据文件长度;
采用数据库的关联方法,将所述待执行计算作业的数据文件作为主文件与所述关联文件进行关联拼接。
9.根据权利要求1所述的用于分布式计算的资源分配方法,其特征在于,所述根据调整后的待执行计算作业的数据文件的长度,分配计算资源包括:
获取所述调整后的数据文件的长度与一个计算资源单位可处理的数据文件的长度的比值,以大于或等于该比值的最小整数作为需要分配的计算资源单位的数目;
为所述数据文件分配相应数目的计算资源单位。
10.根据权利要求1所述的用于分布式计算的资源分配方法,其特征在于,所述方法还包括:
将所述资源分配方法嵌入到计算平台引擎中;
通过接口函数调用所述嵌入到计算平台引擎中的所述的用于分布式计算的资源分配方法。
11.一种用于分布式计算的资源分配装置,其特征在于,包括:
文件长度获取单元,用于获取待执行计算作业的数据文件的实际长度;
调整因子获取单元,用于根据所述待执行计算作业的数据文件的计算规模以及所述数据文件的实际长度获取所述数据文件的文件长度的调整因子;
文件长度调整单元,用于根据所述调整因子调整所述待执行计算作业的数据文件的长度;
计算资源分配单元,用于根据调整后的待执行计算作业的数据文件的长度,分配计算资源。
12.一种用于分布式计算的计算加速方法,其特征在于,包括:
获取待执行计算作业的数据文件的实际长度;
根据所述待执行计算作业的数据文件的计算规模以及所述数据文件的实际长度获取所述数据文件的文件长度的调整因子;
根据所述调整因子调整所述待执行计算作业的数据文件的长度;
根据调整后的待执行计算作业的数据文件的长度,分配计算资源;
利用分配的计算资源,执行所述数据文件的计算作业;
判断所述调整因子是否大于1;若是,将执行完计算作业的数据文件恢复为原始数据文件。
13.一种用于分布式计算的计算加速装置,其特征在于包括:
文件长度获取单元,用于获取待执行计算作业的数据文件的实际长度;
调整因子获取单元,用于根据所述待执行计算作业的数据文件的计算规模以及所述数据文件的实际长度获取所述数据文件的文件长度的调整因子;
文件长度调整单元,用于根据所述调整因子调整所述待执行计算作业的数据文件的长度;
计算资源分配单元,用于根据调整后的待执行计算作业的数据文件的长度,分配计算资源;
计算作业执行单元,用于利用分配的计算资源,执行所述数据文件的计算作业;
判断及数据文件恢复单元,用于判断所述调整因子是否大于1;并在所述调整因子大于1时将执行完计算作业的数据文件恢复为原始数据文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310572431.0A CN104636397B (zh) | 2013-11-15 | 2013-11-15 | 用于分布式计算的资源分配方法、计算加速方法以及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310572431.0A CN104636397B (zh) | 2013-11-15 | 2013-11-15 | 用于分布式计算的资源分配方法、计算加速方法以及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104636397A true CN104636397A (zh) | 2015-05-20 |
CN104636397B CN104636397B (zh) | 2018-04-20 |
Family
ID=53215159
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310572431.0A Active CN104636397B (zh) | 2013-11-15 | 2013-11-15 | 用于分布式计算的资源分配方法、计算加速方法以及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104636397B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106341467A (zh) * | 2016-08-30 | 2017-01-18 | 国网江苏省电力公司电力科学研究院 | 基于大数据并行计算的用电信息采集设备状态分析方法 |
CN108205469A (zh) * | 2016-12-20 | 2018-06-26 | 华为技术有限公司 | 一种基于MapReduce的资源分配方法及服务器 |
WO2018234941A1 (en) * | 2017-06-20 | 2018-12-27 | International Business Machines Corporation | USE OF RESOURCES IN COMPUTER ENVIRONMENTS DISTRIBUTED BY DYNAMICALLY ADJUSTING THE SIZE OF A RESOURCE UNIT |
CN111061697A (zh) * | 2019-12-25 | 2020-04-24 | 中国联合网络通信集团有限公司 | 日志数据处理方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6029168A (en) * | 1998-01-23 | 2000-02-22 | Tricord Systems, Inc. | Decentralized file mapping in a striped network file system in a distributed computing environment |
US20070299804A1 (en) * | 2006-06-21 | 2007-12-27 | Zhen Liu | Method and system for federated resource discovery service in distributed systems |
CN101567001A (zh) * | 2009-05-22 | 2009-10-28 | 清华大学 | 并行文件系统的元数据文件布局管理方法 |
CN103294535A (zh) * | 2012-02-29 | 2013-09-11 | 韩国电子通信研究院 | 最大化磁盘缓存效果的工作流作业调度装置及方法 |
-
2013
- 2013-11-15 CN CN201310572431.0A patent/CN104636397B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6029168A (en) * | 1998-01-23 | 2000-02-22 | Tricord Systems, Inc. | Decentralized file mapping in a striped network file system in a distributed computing environment |
US20070299804A1 (en) * | 2006-06-21 | 2007-12-27 | Zhen Liu | Method and system for federated resource discovery service in distributed systems |
CN101567001A (zh) * | 2009-05-22 | 2009-10-28 | 清华大学 | 并行文件系统的元数据文件布局管理方法 |
CN103294535A (zh) * | 2012-02-29 | 2013-09-11 | 韩国电子通信研究院 | 最大化磁盘缓存效果的工作流作业调度装置及方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106341467A (zh) * | 2016-08-30 | 2017-01-18 | 国网江苏省电力公司电力科学研究院 | 基于大数据并行计算的用电信息采集设备状态分析方法 |
CN106341467B (zh) * | 2016-08-30 | 2019-11-29 | 国网江苏省电力公司电力科学研究院 | 基于大数据并行计算的用电信息采集设备状态分析方法 |
CN108205469A (zh) * | 2016-12-20 | 2018-06-26 | 华为技术有限公司 | 一种基于MapReduce的资源分配方法及服务器 |
CN108205469B (zh) * | 2016-12-20 | 2023-12-15 | 华为技术有限公司 | 一种基于MapReduce的资源分配方法及服务器 |
WO2018234941A1 (en) * | 2017-06-20 | 2018-12-27 | International Business Machines Corporation | USE OF RESOURCES IN COMPUTER ENVIRONMENTS DISTRIBUTED BY DYNAMICALLY ADJUSTING THE SIZE OF A RESOURCE UNIT |
CN111061697A (zh) * | 2019-12-25 | 2020-04-24 | 中国联合网络通信集团有限公司 | 日志数据处理方法、装置、电子设备及存储介质 |
CN111061697B (zh) * | 2019-12-25 | 2023-06-13 | 中国联合网络通信集团有限公司 | 日志数据处理方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104636397B (zh) | 2018-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2017028697A1 (zh) | 计算机集群的扩容和缩容方法及设备 | |
EP3432157B1 (en) | Data table joining mode processing method and apparatus | |
CN104113576A (zh) | 一种客户端的更新方法及装置 | |
CN108932257B (zh) | 多维度数据的查询方法及装置 | |
CN106339252B (zh) | 分布式dag系统的自适应优化方法和装置 | |
CN105989015B (zh) | 一种数据库扩容方法和装置以及访问数据库的方法和装置 | |
CN104636397A (zh) | 用于分布式计算的资源分配方法、计算加速方法以及装置 | |
CN113986241B (zh) | 一种基于知识图谱的业务规则的配置方法以及装置 | |
CN103152391A (zh) | 一种日志输出方法和装置 | |
CN103064717A (zh) | 一种集群系统并行安装软件的装置和方法 | |
CN105868196A (zh) | 一种服务器端工业数据报表生成方法 | |
CN111767144A (zh) | 交易数据的交易路由确定方法、装置、设备及系统 | |
CN110507986B (zh) | 动画信息的处理方法和装置 | |
CN112488745A (zh) | 一种智能费控管理方法、装置、设备和存储介质 | |
CN105868170A (zh) | 一种服务器端工业数据报表生成方法 | |
CN112035466B (zh) | 一种区块链查询外置索引开发框架 | |
EP3349416B1 (en) | Relationship chain processing method and system, and storage medium | |
CN104378239A (zh) | 基于集群框架的快速可靠性指标统计系统及方法 | |
CN108804210B (zh) | 一种云平台的资源配置方法及装置 | |
CN106101710A (zh) | 一种分布式视频转码方法及装置 | |
CN109389271B (zh) | 应用性能管理方法及系统 | |
CN110109986B (zh) | 任务处理方法、系统、服务器及任务调度系统 | |
CN110019497B (zh) | 一种数据读取方法及装置 | |
CN107122254A (zh) | 一种计算机修复控制方法及系统、修复方法及系统 | |
CN112783441B (zh) | 一种调整虚拟机磁盘读写限速的方法、装置及计算设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20191209 Address after: P.O. Box 31119, grand exhibition hall, hibiscus street, 802 West Bay Road, Grand Cayman, Cayman Islands Patentee after: Innovative advanced technology Co., Ltd Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands Patentee before: Alibaba Group Holding Co., Ltd. |
|
TR01 | Transfer of patent right |