一种启动备份任务的方法、装置及电子设备转让专利

申请号 : CN201510573758.9

文献号 : CN106528189B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 才华王家忙

申请人 : 阿里巴巴集团控股有限公司

摘要 :

本申请公开了用于分布式数据处理系统中启动备份任务的方法和装置以及电子设备。其中,用于分布式数据处理系统中启动备份任务的方法包括:根据在单节点上处理的任务的处理状态获取所述任务的处理速度,判断任务的处理速度是否小于预设的处理速度,若小于则根据任务的处理状态和任务的处理速度获取任务的预估剩余处理时间,判断任务的预估剩余处理时间是否大于按照任务的处理状态和预设的处理速度获取的预估处理时间,若大于,为任务启动备份任务。所述技术方案解决了避免长尾延迟的过程繁琐,预先配置不合理的问题,特别是在启动备份任务时,也能避免备份任务启动后,原任务早于备份任务处理完毕,资源浪费的问题。

权利要求 :

1.一种用于分布式数据处理系统中启动备份任务的方法,其特征在于,包括:根据在单节点上处理的任务的处理状态获取所述任务的处理速度;

判断所述任务的处理速度是否小于预设的处理速度;

若小于,则根据所述任务的处理状态和所述任务的处理速度获取所述任务的预估剩余处理时间;

判断所述任务的预估剩余处理时间是否大于按照所述任务的处理状态和所述预设的处理速度获取的预估处理时间;

若大于,为所述任务启动备份任务。

2.根据权利要求1所述的用于分布式数据处理系统中启动备份任务的方法,其特征在于,所述根据在单节点上处理的任务的处理状态获取所述任务的处理速度具体是,按照预设的时间间隔,根据在单节点上处理的任务的处理状态获取所述任务的处理速度。

3.根据权利要求1所述的用于分布式数据处理系统中启动备份任务的方法,其特征在于,所述任务的处理状态,包括:所述任务已处理的数据量以及已处理的时间。

4.根据权利要求3所述的用于分布式数据处理系统中启动备份任务的方法,其特征在于,所述根据在单节点上处理的任务的处理状态获取所述任务的处理速度,包括:获取当前在单节点上处理的任务的已处理的数据量以及已处理的时间;

将所述任务的已处理的数据量和所述任务的已处理的时间的商,作为该任务的处理速度。

5.根据权利要求4所述的用于分布式数据处理系统中启动备份任务的方法,其特征在于,所述根据在单节点上处理的任务的处理状态获取所述任务的处理速度的算法为:AvglnstRateN=dataSizeN/runTimeN其中,AvglnstRate代表单节点上处理的任务的处理速度,其数值越大说明任务的处理速度越快;dataSize代表单节点上处理的任务已处理的数据量,runTime代表单节点上处理的任务已处理的时间,字母N代表某一具体单节点上处理的任务。

6.根据权利要求3所述的用于分布式数据处理系统中启动备份任务的方法,其特征在于,所述预设的处理速度是,当前在所述处理系统中所有节点上处理的任务的平均处理速度。

7.根据权利要求6所述的用于分布式数据处理系统中启动备份任务的方法,其特征在于,所述预设的处理速度,通过如下方式获取:计算当前在所述处理系统中所有节点上处理的任务已处理的数据量的和,将所述当前在所述处理系统中所有节点上处理的任务已处理的数据量的和作为所述处理系统中总任务已处理的数据量;

计算当前在所述处理系统中所有节点上处理的任务已处理的时间的和,将所述当前在所述处理系统中所有节点上处理的任务已处理的时间的和作为所述处理系统中总任务已处理的时间;

将所述总任务已处理的数据量和所述总任务已处理的时间的商,作为所述预设的处理速度。

8.根据权利要求7所述的用于分布式数据处理系统中启动备份任务的方法,其特征在于,所述预设的处理速度的算法为:AvgRate=(dataSize1+dataSize2+···+dataSizeN)/(runTime1+runTime2+···+runTimeN)其中,AvgRate代表预设的处理速度,其数值越大说明任务的处理速度越快;dataSize代表单节点上处理的任务已处理的数据量,runTime代表单节点上处理的任务已处理的时间,该算法中的数字和字母N代表某一具体单节点上处理的任务。

9.根据权利要求3所述的用于分布式数据处理系统中启动备份任务的方法,其特征在于,所述任务的处理状态,还包括:所述任务未处理时的原始数据量。

10.根据权利要求9所述的用于分布式数据处理系统中启动备份任务的方法,其特征在于,所述根据所述任务的处理状态和所述任务的处理速度获取所述任务的预估剩余处理时间,包括:获取所述任务未处理时的原始数据量、所述任务的已处理的数据量以及所述任务的处理速度;

将所述任务未处理时的原始数据量和所述任务的已处理的数据量的差,作为所述任务的剩余数据量;

将所述任务的剩余数据量和所述任务的处理速度的商,作为所述任务的预估剩余处理时间。

11.根据权利要求10所述的用于分布式数据处理系统中启动备份任务的方法,其特征在于,所述根据所述任务的处理状态和所述任务的处理速度获取所述任务的预估剩余处理时间的算法为:TimeLastN=(AllDataN-dataSizeN)/AvglnstRateN其中,TimeLast代表单节点上处理的任务的预估剩余处理时间,其数值越大说明处理完任务还需要的时间就越多;dataSize代表单节点上处理的任务已处理的数据量,AllData代表单节点上处理的任务未处理时的原始数据量,AvglnstRate代表单节点上处理的任务的处理速度,字母N代表某一具体单节点上处理的任务。

12.根据权利要求9所述的用于分布式数据处理系统中启动备份任务的方法,其特征在于,所述按照所述任务的处理状态和所述预设的处理速度获取的预估处理时间,包括:获取所述任务未处理时的原始数据量;

获取所述任务在处理该任务的节点上的启动时间;所述启动时间至少包括所述任务申请资源和启动处理该任务的节点的时间;

将所述任务未处理时的原始数据量和所述预设的处理速度的商,作为所述任务的备份任务的初步预估处理时间;

将所述任务在处理该任务的节点上的启动时间和所述任务的备份任务的初步预估处理时间的和,作为所述按照所述任务的处理状态和所述预设的处理速度获取的预估处理时间。

13.根据权利要求12所述的用于分布式数据处理系统中启动备份任务的方法,其特征在于,所述按照所述任务的处理状态和所述预设的处理速度获取的预估处理时间的算法为:BackupTimeN=AllDataN/AvgRate+overheadTime其中,BackupTime代表单节点上处理的任务的预估处理时间,其数值越大说明处理该任务的备份任务时处理时间就越长,AllData代表单节点上处理的任务未处理时的原始数据量,AvgRate代表预设的处理速度,字母N代表某一具体单节点上处理的任务,overheadTime代表启动单节点上处理的任务所需要的时间,包括申请资源和节点启动。

14.根据权利要求1所述的用于分布式数据处理系统中启动备份任务的方法,其特征在于,所述为所述任务启动备份任务,包括:为所述任务,创建该任务的备份任务;

为所述备份任务分配节点;

在所述节点中处理该备份任务。

15.一种用于分布式数据处理系统中启动备份任务的装置,其特征在于,包括:处理速度获取单元,用于根据在单节点上处理的任务的处理状态获取所述任务的处理速度;

处理速度判断单元,用于判断所述任务的处理速度是否小于预设的处理速度;

预估剩余处理时间获取单元,用于接收所述处理速度判断单元的判断结果,若是,则根据所述任务的处理状态和所述任务的处理速度获取所述任务的预估剩余处理时间;

处理时间判断单元,用于判断所述任务的预估剩余处理时间是否大于按照所述任务的处理状态和所述预设的处理速度获取的预估处理时间;

备份任务启动单元,用于接收所述处理时间判断单元的判断结果,若是,为所述任务启动备份任务。

16.根据权利要求15所述的用于分布式数据处理系统中启动备份任务的装置,其特征在于,所述处理速度获取单元,具体用于按照预设的时间间隔,根据在单节点上处理的任务的处理状态获取所述任务的处理速度。

17.根据权利要求15所述的用于分布式数据处理系统中启动备份任务的装置,其特征在于,所述处理速度获取单元,具体用于按照预设的时间间隔,根据在单节点上处理的任务的已处理的数据量以及已处理的时间,获取所述任务的处理速度。

18.根据权利要求17所述的用于分布式数据处理系统中启动备份任务的装置,其特征在于,所述处理速度获取单元,包括:数据量时间获取子单元,用于获取当前在单节点上处理的任务的已处理的数据量以及已处理的时间;

处理速度计算子单元,用于将所述任务的已处理的数据量和所述任务的已处理的时间的商,作为该任务的处理速度。

19.根据权利要求17所述的用于分布式数据处理系统中启动备份任务的装置,其特征在于,所述处理速度判断单元,具体用于判断所述任务的处理速度是否小于当前在所述处理系统中所有节点上处理的任务的平均处理速度。

20.根据权利要求19所述的用于分布式数据处理系统中启动备份任务的装置,其特征在于,所述处理速度判断单元,包括:节点数据量计算子单元,用于计算当前在所述处理系统中所有节点上处理的任务已处理的数据量的和,将所述当前在所述处理系统中所有节点上处理的任务已处理的数据量的和作为所述处理系统中总任务已处理的数据量;

节点时间计算子单元,用于计算当前在所述处理系统中所有节点上处理的任务已处理的时间的和,将所述当前在所述处理系统中所有节点上处理的任务已处理的时间的和作为所述处理系统中总任务已处理的时间;

处理速度计算子单元,用于将所述总任务已处理的数据量和所述总任务已处理的时间的商,作为所述预设的处理速度。

21.根据权利要求17所述的用于分布式数据处理系统中启动备份任务的装置,其特征在于,所述处理速度获取单元,具体用于按照预设的时间间隔,根据在单节点上处理的任务的已处理的数据量、已处理的时间以及所述任务未处理时的原始数据量,获取所述任务的处理速度。

22.根据权利要求21所述的用于分布式数据处理系统中启动备份任务的装置,其特征在于,所述预估剩余处理时间获取单元,包括:处理状态获取子单元,用于获取所述任务未处理时的原始数据量、所述任务的已处理的数据量以及所述任务的处理速度;

剩余数据量计算子单元,用于将所述任务未处理时的原始数据量和所述任务的已处理的数据量的差,作为所述任务的剩余数据量;

剩余处理时间计算子单元,用于将所述任务的剩余数据量和所述任务的处理速度的商,作为所述任务的预估剩余处理时间。

23.根据权利要求21所述的用于分布式数据处理系统中启动备份任务的装置,其特征在于,所述处理时间判断单元,包括:原始数据量获取子单元,用于获取所述任务未处理时的原始数据量;

启动时间获取子单元,用于获取所述任务在处理该任务的节点上的启动时间;所述启动时间至少包括所述任务申请资源和启动处理该任务的节点的时间;

初步预估子单元,用于将所述任务未处理时的原始数据量和所述预设的处理速度的商,作为所述任务的备份任务的初步预估处理时间;

处理时间计算子单元,用于将所述任务在处理该任务的节点上的启动时间和所述任务的备份任务的初步预估处理时间的和,作为所述按照所述任务的处理状态和所述预设的处理速度获取的预估处理时间。

24.根据权利要求15所述的用于分布式数据处理系统中启动备份任务的装置,其特征在于,所述备份任务启动单元,包括:备份任务创建子单元,用于为所述任务,创建该任务的备份任务;

节点分配子单元,用于为所述备份任务分配节点;

备份任务处理子单元,用于在所述节点中处理该备份任务。

25.一种电子设备,其特征在于,所述电子设备包括:

显示器;

处理器;

存储器,用于存储备份任务启动程序,所述程序在被所述处理器读取执行时,执行如下操作:根据在单节点上处理的任务的处理状态获取所述任务的处理速度,判断所述任务的处理速度是否小于预设的处理速度,若小于,则根据所述任务的处理状态和所述任务的处理速度获取所述任务的预估剩余处理时间,判断所述任务的预估剩余处理时间是否大于按照所述任务的处理状态和所述预设的处理速度获取的预估处理时间,若大于,为所述任务启动备份任务。

说明书 :

一种启动备份任务的方法、装置及电子设备

技术领域

[0001] 本申请涉及分布式计算技术领域,具体涉及一种用于分布式数据处理系统中启动备份任务的方法以及一种用于分布式数据处理系统中启动备份任务的装置;本申请同时涉及一种电子设备。

背景技术

[0002] 目前互联网应用已经成为人们生活的一部分,这些应用往往要为上亿用户服务,而支撑拥有海量用户互联网应用的各种分布式计算环境也成为不可或缺的基础。在分布式环境下,任务会被划分多个任务切片由许多节点进行分步处理,并且会被部署到多个服务器上。尽管在分布式环境下能够显著提高资源利用率,但同时也会带来任务之间相互干扰的问题。例如在分布式环境下,长尾延迟效应会被进一步放大。
[0003] 在分布式环境下,处理在性能较差的节点上的任务切片的处理时间会明显长于正常机器,变成整个任务处理的瓶颈,大大增加了整个任务的处理时间,这就会出现严重的长尾延迟效应。
[0004] 目前,避免长尾延迟的方案为:给长尾的任务切片建立一个备份任务,处理同样的数据。但是在现有技术下,避免长尾延迟的方案存在如下问题:需要用户来配置参数,用户通过设置参数来决定在何时应该启动备份任务;由于参数是预先设定好的固定的数值,很难做到配置的合理性,即使用户通过大量的实践做了相对合理的配置,但是对于每个任务都要做配置,工作量也是非常巨大的;并且很难全面地考虑到任务处理的实时状态,因为每个任务切片的处理情况跟整个系统的软硬件的实时处理情况具有关联。
[0005] 由此可见,在现有避免长尾延迟的方案下,过程比较繁琐,用户操作起来不方便,预先配置不合理,例如任务数据切片不均匀引入的长尾问题,这种长尾是无法通过预先配置参数启动备份任务来缓解的。特别是如果启动备份任务的时候没有考虑原任务的执行速度,很容易出现备份任务虽然启动了,但是原任务仍然早于备份任务处理完毕,导致了资源的白白浪费。

发明内容

[0006] 本申请提供一种用于分布式数据处理系统中启动备份任务的方法以及一种用于分布式数据处理系统中启动备份任务的装置,以解决现有技术中避免长尾延迟的问题。本申请同时涉及一种电子设备。
[0007] 本申请提供了一种用于分布式数据处理系统中启动备份任务的方法,所述方法包括:
[0008] 根据在单节点上处理的任务的处理状态获取所述任务的处理速度;
[0009] 判断所述任务的处理速度是否小于预设的处理速度;
[0010] 若小于,则根据所述任务的处理状态和所述任务的处理速度获取所述任务的预估剩余处理时间;
[0011] 判断所述任务的预估剩余处理时间是否大于按照所述任务的处理状态和所述预设的处理速度获取的预估处理时间;
[0012] 若大于,为所述任务启动备份任务。
[0013] 可选的,所述根据在单节点上处理的任务的处理状态获取所述任务的处理速度具体是,按照预设的时间间隔,根据在单节点上处理的任务的处理状态获取所述任务的处理速度。
[0014] 可选的,所述任务的处理状态,包括:所述任务已处理的数据量以及已处理的时间。
[0015] 可选的,所述根据在单节点上处理的任务的处理状态获取所述任务的处理速度,包括:
[0016] 获取当前在单节点上处理的任务的已处理的数据量以及已处理的时间;
[0017] 将所述任务的已处理的数据量和所述任务的已处理的时间的商,作为该任务的处理速度。
[0018] 可选的,所述根据在单节点上处理的任务的处理状态获取所述任务的处理速度的算法为:
[0019] AvgInstRateN=dataSizeN/runTimeN
[0020] 其中,AvgInstRate代表单节点上处理的任务的处理速度,其数值越大说明任务的处理速度越快;dataSize代表单节点上处理的任务已处理的数据量,runTime代表单节点上处理的任务已处理的时间,字母N代表某一具体单节点上处理的任务。
[0021] 可选的,所述预设的处理速度是,当前在所述处理系统中所有节点上处理的任务的平均处理速度。
[0022] 可选的,所述预设的处理速度,通过如下方式获取:
[0023] 计算当前在所述处理系统中所有节点上处理的任务已处理的数据量的和,将所述当前在所述处理系统中所有节点上处理的任务已处理的数据量的和作为所述处理系统中总任务已处理的数据量;
[0024] 计算当前在所述处理系统中所有节点上处理的任务已处理的时间的和,将所述当前在所述处理系统中所有节点上处理的任务已处理的时间的和作为所述处理系统中总任务已处理的时间;
[0025] 将所述总任务已处理的数据量和所述总任务已处理的时间的商,作为所述预设的处理速度。
[0026] 可选的,所述预设的处理速度的算法为:
[0027] AvgRate=(dataSize1+dataSize2+…+dataSizeN)/(runTime1+runTime2+…+runTimeN)
[0028] 其中,AvgRate代表预设的处理速度,其数值越大说明任务的处理速度越快;dataSize代表单节点上处理的任务已处理的数据量,runTime代表单节点上处理的任务已处理的时间,该算法中的数字和字母N代表某一具体单节点上处理的任务。
[0029] 可选的,所述任务的处理状态,还包括:所述任务未处理时的原始数据量。
[0030] 可选的,所述根据所述任务的处理状态和所述任务的处理速度获取所述任务的预估剩余处理时间,包括:
[0031] 获取所述任务未处理时的原始数据量、所述任务的已处理的数据量以及所述任务的处理速度;
[0032] 将所述任务未处理时的原始数据量和所述任务的已处理的数据量的差,作为所述任务的剩余数据量;
[0033] 将所述任务的剩余数据量和所述任务的处理速度的商,作为所述任务的预估剩余处理时间。
[0034] 可选的,所述根据所述任务的处理状态和所述任务的处理速度获取所述任务的预估剩余处理时间的算法为:
[0035] TimeLastN=(Al lDataN-dataSizeN)/AvgInstRateN
[0036] 其中,TimeLast代表单节点上处理的任务的预估剩余处理时间,其数值越大说明处理完任务还需要的时间就越多;dataSize代表单节点上处理的任务已处理的数据量,Al lData代表单节点上处理的任务未处理时的原始数据量,AvgInstRate代表单节点上处理的任务的处理速度,字母N代表某一具体单节点上处理的任务。
[0037] 可选的,所述按照所述任务的处理状态和所述预设的处理速度获取的预估处理时间,包括:
[0038] 获取所述任务未处理时的原始数据量;
[0039] 获取所述任务在处理该任务的节点上的启动时间;所述启动时间至少包括所述任务申请资源和启动处理该任务的节点的时间;
[0040] 将所述任务未处理时的原始数据量和所述预设的处理速度的商,作为所述任务的备份任务的初步预估处理时间;
[0041] 将所述任务在处理该任务的节点上的启动时间和所述任务的备份任务的初步预估处理时间的和,作为所述按照所述任务的处理状态和所述预设的处理速度获取的预估处理时间。
[0042] 可选的,所述按照所述任务的处理状态和所述预设的处理速度获取的预估处理时间的算法为:
[0043] BackupTimeN=Al lDataN/AvgRate+overheadTime
[0044] 其中,BackupTime代表单节点上处理的任务的预估处理时间,其数值越大说明处理该任务的备份任务时处理时间就越长,Al lData代表单节点上处理的任务未处理时的原始数据量,AvgRate代表预设的处理速度,字母N代表某一具体单节点上处理的任务,overheadTime代表启动单节点上处理的任务所需要的时间,包括申请资源和节点启动等。
[0045] 可选的,所述为所述任务启动备份任务,包括:
[0046] 为所述任务,创建该任务的备份任务;
[0047] 为所述备份任务分配节点;
[0048] 在所述节点中处理该备份任务。
[0049] 相应的,本申请还提供了一种用于分布式数据处理系统中启动备份任务的装置,所述装置包括:
[0050] 处理速度获取单元,用于根据在单节点上处理的任务的处理状态获取所述任务的处理速度;
[0051] 处理速度判断单元,用于判断所述任务的处理速度是否小于预设的处理速度;
[0052] 预估剩余处理时间获取单元,用于接收所述处理速度判断单元的判断结果,若是,则根据所述任务的处理状态和所述任务的处理速度获取所述任务的预估剩余处理时间;
[0053] 处理时间判断单元,用于判断所述任务的预估剩余处理时间是否大于按照所述任务的处理状态和所述预设的处理速度获取的预估处理时间;
[0054] 备份任务启动单元,用于接收所述处理时间判断单元的判断结果,若是,为所述任务启动备份任务。
[0055] 可选的,所述处理速度获取单元,具体用于按照预设的时间间隔,根据在单节点上处理的任务的处理状态获取所述任务的处理速度。
[0056] 可选的,所述处理速度获取单元,具体用于按照预设的时间间隔,根据在单节点上处理的任务的已处理的数据量以及已处理的时间,获取所述任务的处理速度。
[0057] 可选的,所述处理速度获取单元,包括:
[0058] 数据量时间获取子单元,用于获取当前在单节点上处理的任务的已处理的数据量以及已处理的时间;
[0059] 处理速度计算子单元,用于将所述任务的已处理的数据量和所述任务的已处理的时间的商,作为该任务的处理速度。
[0060] 可选的,所述处理速度判断单元,具体用于判断所述任务的处理速度是否小于当前在所述处理系统中所有节点上处理的任务的平均处理速度。
[0061] 可选的,所述处理速度判断单元,包括:
[0062] 节点数据量计算子单元,用于计算当前在所述处理系统中所有节点上处理的任务已处理的数据量的和,将所述当前在所述处理系统中所有节点上处理的任务已处理的数据量的和作为所述处理系统中总任务已处理的数据量;
[0063] 节点时间计算子单元,用于计算当前在所述处理系统中所有节点上处理的任务已处理的时间的和,将所述当前在所述处理系统中所有节点上处理的任务已处理的时间的和作为所述处理系统中总任务已处理的时间;
[0064] 处理速度计算子单元,用于将所述总任务已处理的数据量和所述总任务已处理的时间的商,作为所述预设的处理速度。
[0065] 可选的,所述处理速度获取单元,具体用于按照预设的时间间隔,根据在单节点上处理的任务的已处理的数据量、已处理的时间以及所述任务未处理时的原始数据量,获取所述任务的处理速度。
[0066] 可选的,所述预估剩余处理时间获取单元,包括:
[0067] 处理状态获取子单元,用于获取所述任务未处理时的原始数据量、所述任务的已处理的数据量以及所述任务的处理速度;
[0068] 剩余数据量计算子单元,用于将所述任务未处理时的原始数据量和所述任务的已处理的数据量的差,作为所述任务的剩余数据量;
[0069] 剩余处理时间计算子单元,用于将所述任务的剩余数据量和所述任务的处理速度的商,作为所述任务的预估剩余处理时间。
[0070] 可选的,所述处理时间判断单元,包括:
[0071] 原始数据量获取子单元,用于获取所述任务未处理时的原始数据量;
[0072] 启动时间获取子单元,用于获取所述任务在处理该任务的节点上的启动时间;所述启动时间至少包括所述任务申请资源和启动处理该任务的节点的时间;
[0073] 初步预估子单元,用于将所述任务未处理时的原始数据量和所述预设的处理速度的商,作为所述任务的备份任务的初步预估处理时间;
[0074] 处理时间计算子单元,用于将所述任务在处理该任务的节点上的启动时间和所述任务的备份任务的初步预估处理时间的和,作为所述按照所述任务的处理状态和所述预设的处理速度获取的预估处理时间。
[0075] 可选的,所述备份任务启动单元,包括:
[0076] 备份任务创建子单元,用于为所述任务,创建该任务的备份任务;
[0077] 节点分配子单元,用于为所述备份任务分配节点;
[0078] 备份任务处理子单元,用于在所述节点中处理该备份任务。
[0079] 此外,本申请还提供了一种电子设备,包括:
[0080] 显示器;
[0081] 处理器;
[0082] 存储器,用于存储备份任务启动程序,所述程序在被所述处理器读取执行时,执行如下操作:根据在单节点上处理的任务的处理状态获取所述任务的处理速度,判断所述任务的处理速度是否小于预设的处理速度,若小于,则根据所述任务的处理状态和所述任务的处理速度获取所述任务的预估剩余处理时间,判断所述任务的预估剩余处理时间是否大于按照所述任务的处理状态和所述预设的处理速度获取的预估处理时间,若大于,为所述任务启动备份任务。
[0083] 与现有技术相比,本申请具有以下优点:
[0084] 本申请提供的一种用于分布式数据处理系统中启动备份任务的方法和一种用于分布式数据处理系统中启动备份任务的装置以及电子设备,通过根据在单节点上处理的任务的处理状态获取所述任务的处理速度;判断所述任务的处理速度是否小于预设的处理速度;若小于,则根据所述任务的处理状态和所述任务的处理速度获取所述任务的预估剩余处理时间;判断所述任务的预估剩余处理时间是否大于按照所述任务的处理状态和所述预设的处理速度获取的预估处理时间;若大于,为所述任务启动备份任务。所述技术方案解决了避免长尾延迟的过程比较繁琐,操作起来不方便,预先配置不合理的问题,特别是在启动备份任务时,也能通过上述方法避免备份任务启动后,原任务仍然早于备份任务处理完毕,导致了资源的白白浪费的问题。

附图说明

[0085] 为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
[0086] 图1示出了根据本申请的实施例提供的用于分布式数据处理系统中启动备份任务的方法的流程图;
[0087] 图2示出了根据本申请的实施例提供的根据在单节点上处理的任务的处理状态获取所述任务的处理速度的流程图;
[0088] 图3示出了根据本申请的实施例提供的获取预设的处理速度的流程图;
[0089] 图4示出了根据本申请的实施例提供的根据所述任务的处理状态和所述任务的处理速度获取所述任务的预估剩余处理时间的流程图;
[0090] 图5示出了根据本申请的实施例提供的按照所述任务的处理状态和所述预设的处理速度获取的预估处理时间的流程图;
[0091] 图6示出了根据本申请的实施例提供的为所述任务启动备份任务的流程图;
[0092] 图7示出了根据本申请的实施例提供的用于分布式数据处理系统中启动备份任务的装置的示意图;
[0093] 图8示出了根据本申请的实施例提供的电子设备的示意图。

具体实施方式

[0094] 为了能够更清楚地理解本申请的上述目的、特征和优点,下面结合附图和具体实施方式对本申请进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
[0095] 在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是,本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此,本申请不受下面公开的具体实施的限制。
[0096] 本申请的实施例提供了一种用于分布式数据处理系统中启动备份任务的方法以及一种用于分布式数据处理系统中启动备份任务的装置;本申请同时涉及一种电子设备。在下面的实施例中逐一进行详细说明。
[0097] 目前,避免长尾延迟的方案为:给长尾的任务切片建立一个备份任务,处理同样的数据。但是,避免长尾延迟时需要用户来配置参数,用户通过设置参数来决定在何时应该启动备份任务。由此可见,在现有避免长尾延迟的方案下,过程比较繁琐,用户操作起来不方便,预先配置不合理,例如任务数据切片不均匀引入的长尾问题,这种长尾是无法通过预先配置参数启动备份任务来缓解的。特别是如果启动备份任务的时候没有考虑原任务的执行速度,很容易出现备份任务虽然启动了,但是原任务仍然早于备份任务处理完毕,导致了资源的白白浪费。针对这一问题,本申请的技术方案通过判断所述任务的处理速度是否小于预设的处理速度和判断所述任务的预估剩余处理时间是否大于按照所述任务的处理状态和所述预设的处理速度获取的预估处理时间,从而实现了避免长尾延迟的功能。
[0098] 在详细描述本实施例的具体步骤之前,先对本技术方案涉及的长尾延迟作简要说明。
[0099] 在分布式系统中,将任务分为有限数量的子任务,并在不同节点上处理,由有限数量的子任务组成的分布式系统执行单元称为分布式作业,但是在大型分布式系统中,处理任务的机器软硬件配置各不相同,还具有外界干扰因素,因此导致每个子任务的处理时间不同,运行在性能较差的节点上的子任务的处理时间会明显长于其他机器处理子任务的处理时间,变成整个任务运行的瓶颈,大大增加了整个任务的运行时间,这就是长尾延迟现象。产生长尾延迟现象的原因有:在机器中运行的子任务较多时导致的系统繁忙,使该子任务无法正常申请到资源而导致子任务运行缓慢;子任务由于依赖其他节点的子任务所产生的数据,而这些节点也可能由于系统繁忙导致影响子任务的运行缓慢;对于数据传输密集型的子任务,由于网络带宽较小,导致子任务传输网络数据的速度缓慢;机器中数据磁盘无法正常读写、系统盘读写缓慢等硬件故障,或者操作系统的某些故障,导致子任务运行缓慢。
[0100] 本申请的实施例提供了一种用于分布式数据处理系统中启动备份任务的方法。由于分布式系统中,将具体的任务分为有限数量的子任务,并在不同节点上处理,因此在本实施例中重点描述单一子任务在单一节点上启动备份任务的实施方式,为了描述方便,在下文实施例的描述中对子任务简称为任务;对划分为多个子任务的任务称为总任务。所述用于分布式数据处理系统中启动备份任务的方法实施例如下:
[0101] 请参考图1,其示出了根据本申请的实施例提供的用于分布式数据处理系统中启动备份任务的方法的流程图。
[0102] 所述用于分布式数据处理系统中启动备份任务的方法包括:
[0103] 步骤S101,根据在单节点上处理的任务的处理状态获取所述任务的处理速度。
[0104] 在本实施例中,所述根据在单节点上处理的任务的处理状态获取所述任务的处理速度,可以采用如下方式实现:按照预设的时间间隔,根据在单节点上处理的任务的处理状态获取所述任务的处理速度。所述预设的时间间隔可以是任意时间间隔,但是时间间隔过短会使分布式系统浪费额外的资源,时间间隔过长会增加后续处理中的误差,在本实施例中提供了较理想的时间间隔,例如:可以每间隔15秒,根据在单节点上处理的任务的处理状态,获取一次所述任务的处理速度。
[0105] 需要说明的是,所述在单节点上处理的任务的处理状态,包括:所述任务已处理的数据量以及已处理的时间。
[0106] 可以理解的,每间隔15秒根据在单节点上处理的任务的当前已处理的数据量以及已处理的时间,获取所述在单节点上处理的任务的处理速度。
[0107] 在步骤S101中,所述根据在单节点上处理的任务的处理状态获取所述任务的处理速度,具体包括步骤S101-1至S101-2,下面结合图2作进一步说明。
[0108] 请参考图2,其示出了根据本申请的实施例提供的根据在单节点上处理的任务的处理状态获取所述任务的处理速度的流程图。
[0109] 步骤S101-1,获取当前在单节点上处理的任务的已处理的数据量以及已处理的时间。
[0110] 所述获取当前在单节点上处理的任务的已处理的数据量以及已处理的时间,可以采用如下方式实现:根据每间隔15秒获取在单节点上处理的任务已处理的数据量以及已处理的时间。例如:当前在单节点上处理的任务的已处理的数据量为1m,已处理的时间为2s。
[0111] 步骤S101-2,将所述任务的已处理的数据量和所述任务的已处理的时间的商,作为该任务的处理速度。
[0112] 例如:当前在单节点上处理的任务的已处理的数据量为1m,已处理的时间为2s,将所述任务的已处理的数据量1m除以所述任务已处理的时间2s,获取的所述任务的处理速度为0.5m/s。
[0113] 在具体实施时,所述根据在单节点上处理的任务的处理状态获取所述任务的处理速度的算法为:
[0114] AvgInstRateN=dataSizeN/runTimeN
[0115] 其中,AvgInstRate代表单节点上处理的任务的处理速度,其数值越大说明任务的处理速度越快;dataSize代表单节点上处理的任务已处理的数据量,runTime代表单节点上处理的任务已处理的时间,字母N代表某一具体单节点上处理的任务。
[0116] 例如:所述任务是在第一个节点上处理的任务,则当前在节点上处理的所述任务的已处理的数据量dataSize1为1m,已处理的时间runTime1为2s,根据上述处理速度的算法计算出的所述任务的处理速度AvgInstRate1为0.5m/s。
[0117] 在步骤S101中,获取所述任务的处理速度,可以有两种方式:
[0118] 一是,根据每间隔15秒获取在单节点上处理的任务已处理的数据量以及已处理的时间,在单节点上根据所述任务的处理速度的算法计算出所述任务的处理速度后,上报所述任务的处理速度。例如:将所述任务的处理速度上报给master。
[0119] 需要说明的是,master是一种在分布式系统中并行计算结构,master与slave之间保持心跳,并且互相通信传送任务,最后由master汇集结果。
[0120] 二是,在单节点上,根据每间隔15秒获取在单节点上处理的任务已处理的数据量以及已处理的时间,上报所述任务已处理的数据量以及已处理的时间后,由master根据上报的所述任务已处理的数据量以及已处理的时间,根据所述任务的处理速度的算法计算出所述任务的处理速度。
[0121] 需要说明的是,在本步骤S101中,若采用第一种方式获取所述任务的处理速度,则在后续的步骤中,就都在单节点上处理并将处理后的结果上报master;同样的道理,若采用第二种方式获取所述任务的处理速度,则在后续的步骤中,就都上报所述任务的处理状态之后,在master中处理计算。在本实施例中,以第二种方式进行举例说明。
[0122] 步骤S103,判断所述任务的处理速度是否小于预设的处理速度。
[0123] 在本实施例中,所述预设的处理速度是指:当前在所述处理系统中所有节点上处理的任务的平均处理速度。
[0124] 可以理解的,由于分布式系统中,将任务分为有限数量的子任务,并在不同节点上处理,因此在每一节点上处理的任务的数据量和处理时间都不相同,则每一节点上处理的任务的处理速度都不相同。
[0125] 在步骤S103中,所述预设的处理速度可以通过如下步骤获取,具体包括步骤S102-1至S102-3,下面结合图3作进一步说明。
[0126] 请参考图3,其示出了根据本申请的实施例提供的获取预设的处理速度的流程图。
[0127] 步骤S102-1,计算当前在所述处理系统中所有节点上处理的任务已处理的数据量的和,将所述当前在所述处理系统中所有节点上处理的任务已处理的数据量的和作为所述处理系统中总任务已处理的数据量。
[0128] 根据上报给master的每一节点上处理的任务已处理的数据量,获取在分布式系统中每一节点上处理的任务已处理的数据量,并根据已获取的每一节点上处理的任务已处理的数据量计算在当前所有节点上处理的任务已处理的数据量的和。例如:在分布式系统中,共有3个任务分别在3个不同节点上处理,第一个节点上处理的任务在当前已处理的数据量为1m,第二个节点上处理的任务在当前已处理的数据量为2m,第三个节点上处理的任务在当前已处理的数据量为3m,则当前在所述处理系统中所有节点上处理的任务已处理的数据量的和为6m,将6m作为所述处理系统中总任务已处理的数据量。
[0129] 步骤S102-2,计算当前在所述处理系统中所有节点上处理的任务已处理的时间的和,将所述当前在所述处理系统中所有节点上处理的任务已处理的时间的和作为所述处理系统中总任务已处理的时间。
[0130] 根据上报给master的每一节点上处理的任务已处理的时间,获取在分布式系统中每一节点上处理的任务已处理的时间,并根据已获取的每一节点上处理的任务已处理的时间计算在当前所有节点上处理的任务已处理的时间的和。例如:在分布式系统中,共有3个任务分别在3个不同节点上处理,第一个节点上处理的任务在当前已处理的时间为2s,第二个节点上处理的任务在当前已处理的时间为2s,第三个节点上处理的任务在当前已处理的时间为1s,则当前在所述处理系统中所有节点上处理的任务已处理的时间的和为5s,将5s作为所述处理系统中总任务已处理的时间。
[0131] 步骤S102-3,将所述总任务已处理的数据量和所述总任务已处理的时间的商,作为所述预设的处理速度。
[0132] 例如:在分布式系统中,总任务已处理的数据量为6m,总任务已处理的时间为5s,将所述总任务已处理的数据量6m除以所述总任务已处理的时间5s,获取所述总任务的处理速度为1.2m/s,将1.2m/s作为所述预设的处理速度。
[0133] 在具体实施时,所述预设的处理速度的算法为:
[0134] AvgRate=(dataSize1+dataSize2+…+dataSizeN)/(runTime1+runTime2+…+runTimeN)
[0135] 其中,AvgRate代表预设的处理速度,其数值越大说明任务的处理速度越快;dataSize代表单节点上处理的任务已处理的数据量,runTime代表单节点上处理的任务已处理的时间,该算法中的数字和字母N代表某一具体单节点上处理的任务。
[0136] 例如:在分布式系统中,共有3个任务分别在3个不同节点上处理,第一个节点上处理的任务在当前已处理的数据量dataSize1为1m,第二个节点上处理的任务在当前已处理的数据量dataSize2为2m,第三个节点上处理的任务在当前已处理的数据量dataSize3为3m,则当前在所述处理系统中所有节点上处理的任务已处理的数据量dataSize1+dataSize2+dataSize3的和为6m,将6m作为所述处理系统中总任务已处理的数据量;第一个节点上处理的任务在当前已处理的时间runTime1为2s,第二个节点上处理的任务在当前已处理的时间runTime2为2s,第三个节点上处理的任务在当前已处理的时间runTime3为1s,则当前在所述处理系统中所有节点上处理的任务已处理的时间runTime1+runTime2+runTime3的和为5s,根据上述预设的处理速度的算法计算出的预设的处理速度AvgRate为1.2m/s。
[0137] 在本实施例中,所述判断所述任务的处理速度是否小于预设的处理速度,可以采用如下方式实现:接收步骤S101中,根据在单节点上处理的任务的处理状态获取所述任务的处理速度,与所述预设的处理速度进行对比判断步骤S101中获取的所述任务的处理速度是否小于所述预设的处理速度,即:判断步骤S101中获取的所述任务的处理速度是否小于当前在所述处理系统中所有节点上处理的任务的平均处理速度。
[0138] 步骤S105,若小于,则根据所述任务的处理状态和所述任务的处理速度获取所述任务的预估剩余处理时间。
[0139] 如果步骤S101中,根据在单节点上处理的任务的处理状态获取所述任务的处理速度小于预设的处理速度,说明所述任务的处理速度小于当前在所述处理系统中所有节点上处理的任务的平均处理速度,这种情况下执行步骤S105。
[0140] 在本实施例中,所述根据所述任务的处理状态和所述任务的处理速度获取所述任务的预估剩余处理时间,可以采用如下方式实现:根据当前所述任务的已处理的数据量、所述任务未处理时的原始数据量以及在步骤S101中获取的所述任务的处理速度,获取所述任务的预估剩余处理时间。在本实施例中,所述任务的处理状态,还包括:所述任务未处理时的原始数据量。
[0141] 在步骤S105中,所述根据所述任务的处理状态和所述任务的处理速度获取所述任务的预估剩余处理时间,具体包括步骤S105-1至S105-3,下面结合图4作进一步说明。
[0142] 请参考图4,其示出了根据本申请的实施例提供的根据所述任务的处理状态和所述任务的处理速度获取所述任务的预估剩余处理时间的流程图。
[0143] 步骤S105-1,获取所述任务未处理时的原始数据量、所述任务的已处理的数据量以及所述任务的处理速度。
[0144] 所述获取所述任务未处理时的原始数据量、所述任务的已处理的数据量以及所述任务的处理速度,可以采用如下方式实现:根据每间隔15秒获取在单节点上处理的所述任务未处理时的原始数据量、所述任务的已处理的数据量以及所述任务的处理速度。例如:当前在单节点上处理的任务的已处理的数据量为1m,未处理时的原始数据量为9m,所述任务的处理速度为0.5m/s。
[0145] 步骤S105-2,将所述任务未处理时的原始数据量和所述任务的已处理的数据量的差,作为所述任务的剩余数据量。
[0146] 例如:当前在单节点上处理的任务的已处理的数据量为1m,未处理时的原始数据量为9m,将所述未处理时的原始数据量为9m减去所述任务的已处理的数据量为1m,获取所述任务的剩余数据量为8m。
[0147] 步骤S105-3,将所述任务的剩余数据量和所述任务的处理速度的商,作为所述任务的预估剩余处理时间。
[0148] 例如:当前在单节点上处理的任务的剩余数据量为8m,根据步骤S101中获取到的所述任务的处理速度为0.5m/s,将所述任务的剩余数据量为8m除以所述任务的处理速度0.5m/s,获取所述任务的预估剩余处理时间16s。
[0149] 在具体实施时,所述根据所述任务的处理状态和所述任务的处理速度获取所述任务的预估剩余处理时间的算法为:
[0150] TimeLastN=(Al lDataN-dataSizeN)/AvgInstRateN
[0151] 其中,TimeLast代表单节点上处理的任务的预估剩余处理时间,其数值越大说明处理完任务还需要的时间就越多;dataSize代表单节点上处理的任务已处理的数据量,Al lData代表单节点上处理的任务未处理时的原始数据量,AvgInstRate代表单节点上处理的任务的处理速度,字母N代表某一具体单节点上处理的任务。
[0152] 例如:所述任务是在第一个节点上处理的任务,则当前在节点上处理的所述任务的已处理的数据量dataSize1为1m,未处理时的原始数据量Al lData1为9m,在步骤S101中获取到的所述任务的处理速度为0.5m/s,根据上述根据所述任务的处理状态和所述任务的处理速度获取所述任务的预估剩余处理时间的算法计算出的所述任务的预估剩余处理时间TimeLast1为16s。
[0153] 步骤S107,判断所述任务的预估剩余处理时间是否大于按照所述任务的处理状态和所述预设的处理速度获取的预估处理时间。
[0154] 在本实施例中,所述按照所述任务的处理状态和所述预设的处理速度获取的预估处理时间是指:启动所述任务的备份任务至完成该备份任务时的预估处理时间。
[0155] 可以理解的,由于分布式系统中,将任务分为有限数量的子任务,并在不同节点上处理,由于节点会受到机器系统繁忙、网络带宽或数据磁盘系统盘读写缓慢的影响,导致该节点处理任务的处理速度缓慢,造成长尾延迟现象,若将所述任务备份到其他机器中的节点上处理时,就可能避免上述问题的发生。将所述任务备份到其他机器中的节点上处理就是启动备份任务的过程。
[0156] 本步骤就是对所述任务估算启动备份任务时的处理时间,在步骤S107中,所述按照所述任务的处理状态和所述预设的处理速度获取的预估处理时间,具体包括步骤S107-1至S107-4,下面结合图5作进一步说明。
[0157] 请参考图5,其示出了根据本申请的实施例提供的按照所述任务的处理状态和所述预设的处理速度获取的预估处理时间的流程图。
[0158] 步骤S107-1,获取所述任务未处理时的原始数据量。
[0159] 所述获取所述任务未处理时的原始数据量,可以采用如下方式实现:每间隔15秒获取在单节点上处理的所述任务未处理时的原始数据量。例如:当前在单节点上处理的任务未处理时的原始数据量为9m。
[0160] 步骤S107-2,获取所述任务在处理该任务的节点上的启动时间;所述启动时间至少包括所述任务申请资源和启动处理该任务的节点的时间。
[0161] 在本实施例中,所述获取所述任务在处理该任务的节点上的启动时间,可以采用如下方式实现:将所述任务在启动时申请资源的时间和启动处理所述任务的节点的时间的和,作为所述任务在处理该任务的节点上的启动时间。例如:所述任务在启动时申请资源的时间为2s,启动处理所述任务的节点的时间为1s,则所述任务的启动时间为3s。
[0162] 步骤S107-3,将所述任务未处理时的原始数据量和所述预设的处理速度的商,作为所述任务的备份任务的初步预估处理时间。
[0163] 例如:当前在单节点上处理的任务未处理时的原始数据量为9m,在步骤S102中获取的所述预设的处理速度为1.2m/s,将所述任务未处理时的原始数据量9m除以所述预设的处理速度1.2m/s,获取的所述任务的备份任务的初步预估处理时间为7.5s。
[0164] 步骤S107-4,将所述任务在处理该任务的节点上的启动时间和所述任务的备份任务的初步预估处理时间的和,作为所述按照所述任务的处理状态和所述预设的处理速度获取的预估处理时间。
[0165] 例如:当前在单节点上处理的任务的启动时间为3s,所述任务的备份任务的初步预估处理时间为7.5s,将所述任务的启动时间3s加上所述任务的备份任务的初步预估处理时间7.5s,作为所述按照所述任务的处理状态和所述预设的处理速度获取的预估处理时间,即:启动所述任务的备份任务至完成该备份任务时的预估处理时间为10.5s。
[0166] 在具体实施时,所述按照所述任务的处理状态和所述预设的处理速度获取的预估处理时间的算法为:
[0167] BackupTimeN=AllDataN/AvgRate+overheadTime
[0168] 其中,BackupTime代表单节点上处理的任务的预估处理时间,其数值越大说明处理该任务的备份任务时处理时间就越长,AllData代表单节点上处理的任务未处理时的原始数据量,AvgRate代表预设的处理速度,字母N代表某一具体单节点上处理的任务,overheadTime代表启动单节点上处理的任务所需要的时间,包括申请资源和节点启动等。
[0169] 例如:所述任务是在第一个节点上处理的任务,则当前在节点上处理的所述任务未处理时的原始数据量AllData1为9m,在步骤S102中获取的所述预设的处理速度AvgRate为1.2m/s,在步骤S107-2中获取所述任务在处理该任务的节点上的启动时间overheadTime为3s,根据上述按照所述任务的处理状态和所述预设的处理速度获取的预估处理时间的算法计算出的按照所述任务的处理状态和所述预设的处理速度获取的预估处理时间BackupTime1为10.5s,即:启动所述任务的备份任务至完成该备份任务时的预估处理时间为10.5s
[0170] 在本实施例中,所述判断所述任务的预估剩余处理时间是否大于按照所述任务的处理状态和所述预设的处理速度获取的预估处理时间,可以采用如下方式实现:接收步骤S105中,根据所述任务的处理状态和所述任务的处理速度获取所述任务的预估剩余处理时间与按照所述任务的处理状态和所述预设的处理速度获取的预估处理时间进行对比,判断步骤S105中获取的所述任务的预估剩余处理时间是否大于按照所述任务的处理状态和所述预设的处理速度获取的预估处理时间,即:判断步骤S105中获取的所述任务的预估剩余处理时间是否大于启动所述任务的备份任务至完成该备份任务时的预估处理时间。
[0171] 步骤S109,若大于,为所述任务启动备份任务。
[0172] 如果步骤S105中,根据所述任务的处理状态和所述任务的处理速度获取所述任务的预估剩余处理时间大于按照所述任务的处理状态和所述预设的处理速度获取的预估处理时间,说明所述任务的预估剩余处理时间是否大于启动所述任务的备份任务至完成该备份任务时的预估处理时间,这种情况下执行步骤S109。
[0173] 在步骤S109中,所述为所述任务启动备份任务,具体包括步骤S109-1至S109-3,下面结合图6作进一步说明。
[0174] 请参考图6,其示出了根据本申请的实施例提供的为所述任务启动备份任务的流程图。
[0175] 步骤S109-1,为所述任务,创建该任务的备份任务。
[0176] 在本实施例中,所述备份任务是指:与原有的所述任务处理的数据相同,且具有相同处理逻辑的任务。
[0177] 步骤S109-2,为所述备份任务分配节点。
[0178] 所述为所述备份任务分配节点,可以采用如下方式实现:选取与处理原有的所述任务不同节点,该节点用于处理所述备份任务。所述节点可以是,在相同机器中未进行处理任务的节点、在分布式系统下的其他机器中的节点。
[0179] 步骤S109-3,在所述节点中处理该备份任务。
[0180] 所述在所述节点中处理该备份任务,可以采用如下方式实现:所述备份任务启动所述节点,并在在所述节点中申请该备份任务需要的资源,运行所述备份任务。
[0181] 通过本申请实施例提供的一种用于分布式数据处理系统中启动备份任务的方法,通过判断所述任务的处理速度是否小于预设的处理速度和判断所述任务的预估剩余处理时间是否大于按照所述任务的处理状态和所述预设的处理速度获取的预估处理时间,简化了用户预先配置的时间,并且考虑了原有任务的处理速度,避免了启动所述任务的备份任务后,原有任务早于备份任务处理完毕从而造成的资源浪费的问题。
[0182] 在上述的实施例中,提供了一种用于分布式数据处理系统中启动备份任务的方法,与上述用于分布式数据处理系统中启动备份任务的方法相对应的,本申请还提供了一种用于分布式数据处理系统中启动备份任务的装置。由于装置的实施例基本相似于方法的实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。所述用于分布式数据处理系统中启动备份任务的装置实施例如下:
[0183] 请参考图7,其示出了根据本申请的实施例提供的用于分布式数据处理系统中启动备份任务的装置的示意图。
[0184] 所述用于分布式数据处理系统中启动备份任务的装置,包括:处理速度获取单元701、处理速度判断单元703、预估剩余处理时间获取单元705、处理时间判断单707以及备份任务启动单元709;
[0185] 所述处理速度获取单元701,用于根据在单节点上处理的任务的处理状态获取所述任务的处理速度;
[0186] 所述处理速度判断单元703,用于判断所述任务的处理速度是否小于预设的处理速度;
[0187] 所述预估剩余处理时间获取单元705,用于接收所述处理速度判断单元205的判断结果,若是,则根据所述任务的处理状态和所述任务的处理速度获取所述任务的预估剩余处理时间;
[0188] 所述处理时间判断单元707,用于判断所述任务的预估剩余处理时间是否大于按照所述任务的处理状态和所述预设的处理速度获取的预估处理时间;
[0189] 所述备份任务启动单元709,用于接收所述处理时间判断单元209的判断结果,若是,为所述任务启动备份任务。
[0190] 可选的,所述处理速度获取单元701,具体用于按照预设的时间间隔,根据在单节点上处理的任务的处理状态获取所述任务的处理速度。
[0191] 可选的,所述处理速度获取单元701,具体用于按照预设的时间间隔,根据在单节点上处理的任务的已处理的数据量以及已处理的时间,获取所述任务的处理速度。
[0192] 可选的,所述处理速度获取单元701,包括:数据量时间获取子单元以及处理速度计算子单元;
[0193] 所述数据量时间获取子单元,用于获取当前在单节点上处理的任务的已处理的数据量以及已处理的时间;
[0194] 所述处理速度计算子单元,用于将所述任务的已处理的数据量和所述任务的已处理的时间的商,作为该任务的处理速度。
[0195] 可选的,所述处理速度判断单元703,具体用于判断所述任务的处理速度是否小于当前在所述处理系统中所有节点上处理的任务的平均处理速度。
[0196] 可选的,所述处理速度判断单元703,包括:节点数据量计算子单元、节点时间计算子单元以及处理速度计算子单元;
[0197] 所述节点数据量计算子单元,用于计算当前在所述处理系统中所有节点上处理的任务已处理的数据量的和,将所述当前在所述处理系统中所有节点上处理的任务已处理的数据量的和作为所述处理系统中总任务已处理的数据量;
[0198] 所述节点时间计算子单元,用于计算当前在所述处理系统中所有节点上处理的任务已处理的时间的和,将所述当前在所述处理系统中所有节点上处理的任务已处理的时间的和作为所述处理系统中总任务已处理的时间;
[0199] 所述处理速度计算子单元,用于将所述总任务已处理的数据量和所述总任务已处理的时间的商,作为所述预设的处理速度。
[0200] 可选的,所述处理速度获取单元701,具体用于按照预设的时间间隔,根据在单节点上处理的任务的已处理的数据量、已处理的时间以及所述任务未处理时的原始数据量,获取所述任务的处理速度。
[0201] 可选的,所述预估剩余处理时间获取单元705,包括:处理状态获取子单元、剩余数据量计算子单元以及剩余处理时间计算子单元;
[0202] 所述处理状态获取子单元,用于获取所述任务未处理时的原始数据量、所述任务的已处理的数据量以及所述任务的处理速度;
[0203] 所述剩余数据量计算子单元,用于将所述任务未处理时的原始数据量和所述任务的已处理的数据量的差,作为所述任务的剩余数据量;
[0204] 所述剩余处理时间计算子单元,用于将所述任务的剩余数据量和所述任务的处理速度的商,作为所述任务的预估剩余处理时间。
[0205] 可选的,所述处理时间判断单元707,包括:原始数据量获取子单元、启动时间获取子单元、初步预估子单元以及处理时间计算子单元;
[0206] 所述原始数据量获取子单元,用于获取所述任务未处理时的原始数据量;
[0207] 所述启动时间获取子单元,用于获取所述任务在处理该任务的节点上的启动时间;所述启动时间至少包括所述任务申请资源和启动处理该任务的节点的时间;
[0208] 所述初步预估子单元,用于将所述任务未处理时的原始数据量和所述预设的处理速度的商,作为所述任务的备份任务的初步预估处理时间;
[0209] 所述处理时间计算子单元,用于将所述任务在处理该任务的节点上的启动时间和所述任务的备份任务的初步预估处理时间的和,作为所述按照所述任务的处理状态和所述预设的处理速度获取的预估处理时间。
[0210] 可选的,所述备份任务启动单元709,包括:
[0211] 所述备份任务创建子单元,用于为所述任务,创建该任务的备份任务;
[0212] 所述节点分配子单元,用于为所述备份任务分配节点;
[0213] 所述备份任务处理子单元,用于在所述节点中处理该备份任务。
[0214] 在上述的实施例中,提供了一种用于分布式数据处理系统中启动备份任务的方法以及一种用于分布式数据处理系统中启动备份任务的装置,此外,本申请还提供了一种电子设备;所述电子设备实施例如下:
[0215] 请参考图8,其示出了根据本申请的实施例提供的电子设备的示意图。
[0216] 所述电子设备,包括:显示器801、处理器803以及存储器805;
[0217] 所述存储器805,用于存储备份任务启动程序,所述程序在被所述处理器读取执行时,执行如下操作:根据在单节点上处理的任务的处理状态获取所述任务的处理速度,判断所述任务的处理速度是否小于预设的处理速度,若小于,则根据所述任务的处理状态和所述任务的处理速度获取所述任务的预估剩余处理时间,判断所述任务的预估剩余处理时间是否大于按照所述任务的处理状态和所述预设的处理速度获取的预估处理时间,若大于,为所述任务启动备份任务。
[0218] 在上述的实施例中,提供了一种用于分布式数据处理系统中启动备份任务的方法、一种用于分布式数据处理系统中启动备份任务的装置以及一种电子设备,此外,本申请还提供了一种分布式处理系统数据处理的方法;所述分布式处理系统数据处理的方法,包括:
[0219] 系统中有至少一个在节点上运行的任务,所述任务采用如上述的用于分布式数据处理系统中启动备份任务的方法。
[0220] 基于上述可以理解的是,本申请提供的一种分布式处理系统数据处理的方法,该方法中在分布式系统中包含多个在各节点上处理的任务,每一在各节点上处理的任务在处理时,都可以参考上述实施例中的用于分布式数据处理系统中启动备份任务的方法中的说明启动对应任务的备份任务,此处不再赘述。
[0221] 例如:在分布式系统中共有2个任务分别在2个不同节点上处理,可以参考上述实施例中的用于分布式数据处理系统中启动备份任务的方法中的说明,根据在每一节点上处理的任务的处理状态获取对应的每一任务的处理速度。
[0222] 在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
[0223] 内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
[0224] 1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0225] 2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0226] 本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。