一种spark任务运行时间调整方法、装置及设备与流程

文档序号:16997882发布日期:2019-03-02 01:30阅读:258来源:国知局
一种spark任务运行时间调整方法、装置及设备与流程

本发明涉及分布式计算技术领域,特别是涉及一种spark任务运行时间调整方法。本发明还涉及一种spark任务运行时间调整装置、设备及计算机可读存储介质。



背景技术:

分布式计算引擎拥有高性能易用的特点,可以用于离线计算、流式计算、图像计算和机器学习等各个领域。spark是一种编程语言,其典型应用场景是读取hdfs等分布式文件系统的数据,并启动多个并发的任务进行并行计算。由于典型的hdfs环境文件是三副本保存的,即任意一份文件,均会在集群中的三个节点上保存。这也意味着在除了这三个节点以外的其他节点上访问这份文件需要跨网络传输。

spark出于性能考虑设计了任务的数据本地性属性,用于指导任务的调度,尽量减少数据的网络传输路径长度。参见表1所示,表1为本地性属性示意表。

表1为本地性属性示意表

目前,spark在调度任务投入执行前,会依次在不同的本地性属性上根据配置的spark.locality.wait时间(本地等待时间)进行等待。不同的本地性属性的等待顺序为:process_local->node_local->rack_local,如果等不到满足这三种本地性属性的进程的话,则会按照any级别去调度执行。举例来说,假如spark.locality.wait为3s,则任务会首先等待符合process_local的进程,若三秒内没有等到则会继续等待符合local-node的进程,后续同理。若以上三种进程均未等到的话,则会按照any级别去调度执行。

但是这种方式下,由于涉及到的数据大小本身可能并不大,也许只需要1s或者更短的时间就能完成网络传输,但是因为本地性条件不满足,spark还是需要等待预先配置的spark.locality.wait的若干倍时间,导致spark任务处理效率低。

因此,如何提供一种任务处理效率高的spark任务运行时间调整方案是本领域技术人员目前需要解决的问题。



技术实现要素:

本发明的目的是提供一种spark任务运行时间调整方法,能够依据spark任务的数据量动态调整任务的本地等待时间,从而尽可能保证各种情况下的任务处理效率,提高spark任务的整体处理性能;本发明的另一目的是提供一种基于上述方法的装置、设备及计算机可读存储介质。

为解决上述技术问题,本发明提供了一种spark任务运行时间调整方法,应用于分布式文件系统,包括:

接收spark任务后,依据任务的内容从分布式文件系统的元数据信息中,获取所述spark任务运行时需要从所述分布式文件系统中读取的数据量;

依据预设调整规则,确定所述数据量所处的阈值范围区间以及该阈值范围区间所对应的本地等待时间;阈值范围区间越大其对应的本地等待时间越长;

依据确定的本地等待时间以及本地性属性的类型依次进行等待,等待过程中,检测到符合当前等待的本地性属性的进程后,通过该进程运行所述spark任务。

优选地,所述预设调整规则包括三个阈值范围区间,第一阈值范围区间对应的本地等待时间为n1,第二阈值范围区间对应的本地等待时间为n2,第三阈值范围区间对应的本地等待时间为n3;第一阈值范围区间>第二阈值范围区间>第三阈值范围区间;n1>n2>n3>0;本地性属性的类型包括process_local、node_local以及rack_local。

优选地,所述预设调整规则包括三个阈值范围区间,第一阈值范围区间对应的本地等待时间为n1,第二阈值范围区间对应的本地等待时间为n2,第三阈值范围区间对应的本地等待时间为0;第一阈值范围区间>第二阈值范围区间>第三阈值范围区间;n1>n2>0;

其中,若所述确定的本地等待时间大于0,则本地性属性的类型包括process_local、node_local以及rack_local;

若所述确定的本地等待时间为0,则本地性属性的类型为any,后续直接选择任一进程运行所述spark任务。

优选地,所述获取所述spark任务运行时所需读取的数据量之后,还包括:

依据所述预设调整规则,确定所述数据量所处的阈值范围区间对应的本地性属性的类型,阈值范围区间越大对应的本地性属性的类型个数越多。

优选地,所述预设调整规则包括三个阈值范围区间,第一阈值范围区间对应的本地等待时间为n1,本地性属性的类型包括process_local、node_local以及rack_local;

第二阈值范围区间对应的本地等待时间为n2,本地性属性的类型包括process_local、node_local以及rack_local中的任意两种;

第三阈值范围区间对应的本地等待时间为n3,n3大于0时,本地性属性的类型包括process_local、node_local以及rack_local中的任意一种;n3=0时,本地性属性的类型为any;

第一阈值范围区间>第二阈值范围区间>第三阈值范围区间;n1和n2大于0;n1≥n2≥n3。

优选地,所述预设调整规则包括多个阈值范围区间,每个阈值范围区间对应有三个本地等待时间n1、n2和n3;n1≥n2≥n3;

n1用于调整process_local类型的本地性属性对应的本地等待时间;

n2用于调整node_local类型的本地性属性对应的本地等待时间;

n3用于调整rack_local类型的本地性属性对应的本地等待时间;

若n1、n2和n3均为0,则本地性属性的类型为any,后续直接选择任一进程运行所述spark任务。

为解决上述技术问题,本发明还提供了一种spark任务运行时间调整装置,应用于分布式文件系统,包括:

数据量获取模块,用于接收spark任务后,依据任务的内容从分布式文件系统的元数据信息中,获取所述spark任务运行时需要从所述分布式文件系统中读取的数据量;

查询模块,用于依据预设调整规则,确定所述数据量所处的阈值范围区间以及该阈值范围区间所对应的本地等待时间;阈值范围区间越大其对应的本地等待时间越长;

等待运行模块,用于依据确定的本地等待时间以及本地性属性的类型依次进行等待,等待过程中,检测到符合当前等待的本地性属性的进程后,通过该进程运行所述spark任务。

优选地,所述查询模块还用于:

依据所述预设调整规则,确定所述数据量所处的阈值范围区间对应的本地性属性的类型,阈值范围区间越大对应的本地性属性的类型个数越多。

为解决上述技术问题,本发明还提供了一种spark任务运行时间调整设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如以上任一项所述的spark任务运行时间调整方法的步骤。

为解决上述技术问题,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如以上任一项所述的spark任务运行时间调整方法的步骤。

本发明提供了一种spark任务运行时间调整方法,当接收到spark任务之后,在任务运行之前,首先依据任务的内容,从分布式文件系统的元数据信息中得到该spark任务运行时需要从分布式文件系统中读取的数据量,之后根据数据量的大小动态的调整该任务所对应的本地等待时间的大小,最后依据确定的本地等待时间来在不同类型的本地性属性上进行等待,检测到符合需求的进程后通过检测到的进程来运行spark任务。可见,本发明中能够依据spark任务运行时涉及的数据量大小来动态的调整后续在本地性属性上等待的时间,因此用户可以根据需求,使得当数据量较小的时候,由于此时即使跨网络读取。数据也不会浪费太长的时间,因此为了提高数据处理速度,可以选择将本地等待时间设置得较小,而当数据量较大的时候,由于跨网络读取数据浪费的时间太长,因此更倾向于本地读取数据,将本地等待时间设置的较长,从而尽量等到本地化属性最优的进程来处理任务。本发明的这种动态调整的方式使得spark任务获取数据时的方式更为灵活,并且尽可能的保证了各种情况下spark任务均能具有较小的计算延迟,spark任务处理效率整体较高,从而提高了spark任务处理时的整体性能。本发明还提供了一种基于上述方法的装置、设备和计算机可读存储介质,在此不再赘述。

附图说明

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

图1为本发明提供的一种spark任务运行时间调整方法的过程的流程图;

图2为本发明提供的一种spark任务运行时间调整装置的结构示意图。

具体实施方式

本发明的核心是提供一种spark任务运行时间调整方法,能够依据spark任务的数据量动态调整任务的本地等待时间,从而尽可能保证各种情况下的任务处理效率,提高spark任务的整体处理性能;本发明的另一核心是提供一种基于上述方法的装置、设备及计算机可读存储介质。

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明提供了一种spark任务运行时间调整方法,应用于分布式文件系统,参见图1所示,图1为本发明提供的一种spark任务运行时间调整方法的过程的流程图;该方法包括:

步骤s1:接收spark任务后,依据任务的内容从分布式文件系统的元数据信息中,获取spark任务运行时需要从分布式文件系统中读取的数据量;

spark任务在运行的时候需要从分布式文件系统内读取相应的数据,为了确定spark任务时需要读取的数据量,可以通过任务的内容,来确定其所要读取的数据区域,之后依据分布式文件系统的元数据信息(以hdfs为例,该信息从namenode节点获取)来确定spark任务想要读取的数据区域内的数据量,从而确定spark任务时需要读取的数据量。

步骤s2:依据预设调整规则,确定数据量所处的阈值范围区间以及该阈值范围区间所对应的本地等待时间;阈值范围区间越大其对应的本地等待时间越长;

现有技术中,由于不同大小的数据在读取时均采用相同的本地等待时间来进行等待,因此导致部分小数据本能使用很短的时间完成网络传输,却仍要等待本地等待时间的若干倍的时间,任务处理效率低。因此,本发明设定了不同的阈值范围区间,这里的阈值范围区间指的是数据量大小范围,并且为不同的阈值范围区间设定了不同的本地等待时间,后续依据当前spark任务所需要读取的数据量所处的阈值范围区间,来确定该spark任务的本地等待时间。这样使得对于所需数据量较小的spark任务来说,由于由于其直接从网络获取数据所需的时间也较短,因此,可以缩短这部分任务的本地等待时间,避免过长的等待本地化进程导致的计算延迟。而对于部分数据量较大的spark任务,由于其跨网络获取数据所需要的时间过长,因此,需要尽可能的选用本地获取数据的方式,故需要设置较长的本地是等待时间来等待本地化进程。可见本发明通过依据任务读取数据量来动态调整本地等待时间的方式,能够提高spark的整体的任务处理性能。

步骤s3:依据确定的本地等待时间以及本地性属性的类型依次进行等待,等待过程中,检测到符合当前等待的本地性属性的进程后,通过该进程运行spark任务。

依据前述内容可知,本地性属性包含有不同的类型,在设置本地等待时间之后,需要依据本地性属性的顺序依次按照本地等待时间进行等待。在等待过程中,若检测到符合当前等待的本地性属性的进程后,通过该进程进行任务处理时,数据读取的位置能够符合该本地性属性的要求。

本发明提供的一种spark任务运行时间调整方法,能够依据spark任务运行时涉及的数据量大小来动态的调整后续在本地性属性上等待的时间,因此用户可以根据需求,使得当数据量较小的时候,由于此时即使跨网络读取。数据也不会浪费太长的时间,因此为了提高数据处理速度,可以选择将本地等待时间设置得较小,而当数据量较大的时候,由于跨网络读取数据浪费的时间太长,因此更倾向于本地读取数据,将本地等待时间设置的较长,从而尽量等到本地化属性最优的进程来处理任务。本发明的这种动态调整的方式使得spark任务获取数据时的方式更为灵活,并且尽可能的保证了各种情况下spark任务均能具有较小的计算延迟,spark任务处理效率整体较高,从而提高了spark任务处理时的整体性能。

作为优选地,预设调整规则包括三个阈值范围区间,第一阈值范围区间对应的本地等待时间为n1,第二阈值范围区间对应的本地等待时间为n2,第三阈值范围区间对应的本地等待时间为n3;第一阈值范围区间>第二阈值范围区间>第三阈值范围区间;n1>n2>n3>0;本地性属性的类型包括process_local、node_local以及rack_local。

参见表2所示,表2为一种具体实施例中的预设调整规则示意表。

表2一种具体实施例中的预设调整规则示意表

在本实施例中,不论任务想要读取的数据量大小,其本地等待时间均不为零,只是随着数据量大小的不同本地等待时间也不同。其中,数据量越大本地等待时间越大,但是不论数据量多大,在本实施例中,每次均要依据以上三种本地性属性进行等待。即每次任务处理时,均需要依次等待本地等待时间的长度的process_local、node_local以及rack_local类型的进程,三种本地性属性的类型的进程的等待时间相同,整体进程的等待时间为三倍的本地等待时间的长度。当在以上三种本地性属性的等待过程中均未检测到合适的进程的话,则会按照any的级别去调度执行。这种方式中,能够使得任务在运行的时候尽量能够从距离比较近的本地服务器内获取数据,来缩短网络传输路径。并且,由于对于这三个阈值范围区间来说,其对应的本地性属性的类型是相同的,仅是对应的本地等待时间不同,因此,n1、n2和n3不能相同。当然,本发明不限定阈值范围区间的设置个数,以及每个阈值范围区间的具体数值,和每个阈值范围区间对应的本地等待时间的具体数值。

在另一优选实施例中,预设调整规则包括三个阈值范围区间,第一阈值范围区间对应的本地等待时间为n1,第二阈值范围区间对应的本地等待时间为n2,第三阈值范围区间对应的本地等待时间为0;第一阈值范围区间>第二阈值范围区间>第三阈值范围区间;n1>n2>0;

其中,若确定的本地等待时间大于0,则本地性属性的类型包括process_local、node_local以及rack_local。若确定的本地等待时间为0,则本地性属性的类型为any,后续直接选择任一进程运行spark任务。

在本实施例中,三个阈值范围区间如前一个实施例所述,数据量越大则对应的本地等待时间越长。对于数据量处于第一阈值范围区间或第二阈值范围区间的spark任务来说,数据量相对是较大的,这种情况下,优选进行本地性等待。因此本实施例在这两种情况下依次等待本地等待时间的长度的process_local、node_local以及rack_local类型的进程。而当数据量处于第三阈值范围区间时,表明此时数据量较小,即使跨网络读取所需的时间也较少,因此,本实施例采用放弃本地性等待,直接选择任一进程运行spark任务来快速的通过网络获取数据,尽快启动计算,从而避免由于等待其他级别的本地性属性的进程而导致的时间浪费,尽可能的提高了小数据任务的数据处理效率。当然,本发明不限定阈值范围区间的设置个数,以及每个阈值范围区间的具体数值,和每个阈值范围区间对应的本地等待时间的具体数值。

在一优选实施例中,获取spark任务运行时所需读取的数据量之后,还包括:

依据预设调整规则,确定数据量所处的阈值范围区间对应的本地性属性的类型,阈值范围区间越大对应的本地性属性的类型个数越多。

可以理解的是,不同数据量大小的任务,其对于从本地读取数据的需求程度是不同的,任务的等待时间是本地等待时间与本地性属性的类型个数相乘后得到的,因此,若等待的本地性属性个数越多,任务的整体的等待时间则会,越长,这种情况下,若是对于任何任务均令其等待全部本地性属性的本地等待时间的话,会导致部分对于本地读取数据的需求不是很强烈的任务,也需要为了在本地读取数据这一目的而等待大量的时间,导致任务处理的效率低。而本实施例中,依据数据量的不同,而选择为该任务设置不同个数的本地性属性,从而动态地调整任务的等待时间,提高任务的整体处理效率。

举例来说,数据量特别大的任务,由于其对于从本地读取数据的需求特别强烈,因此,需要尝试等待较多类型的本地性属性,从而尽可能的保证其能够从距离较近的本地服务器内来读取数据。而对于数据量不是特别大的任务,其对于从本地读取数据的需求没有特别强烈,可以尝试等待较少类型的本地性属性。此时,即使无法从本地来读取数据,后续跨网络读取数据时,其之前等待的时间和后续数据读取的时间也较为平衡。对于数据量特别小的任务,对于从本地读取数据的需求特别小,因此,可以尝试等待很少类型本地性属性,从而使得其能够快速的从网络获取数据。由此可见,这种方式能够灵活地依据数据量的大小来调整不同任务所需要等待的本地性属性的类型的个数,保证整体任务的性能。

进一步的,预设调整规则包括三个阈值范围区间,第一阈值范围区间对应的本地等待时间为n1,本地性属性的类型包括process_local、node_local以及rack_local;

第二阈值范围区间对应的本地等待时间为n2,本地性属性的类型包括process_local、node_local以及rack_local中的任意两种;

第三阈值范围区间对应的本地等待时间为n3,n3大于0时,本地性属性的类型包括process_local、node_local以及rack_local中的任意一种;n3=0时,本地性属性的类型为any;

第一阈值范围区间>第二阈值范围区间>第三阈值范围区间;n1和n2大于0;n1≥n2≥n3。

可以理解的是,在本实施例中,对于数据量较大的任务,不仅为其设置了较长的本地等待时间,并且设置了较多的需要等待的本地性属性的类型;对于数据量一般的任务,为其设置的本地等待时间相对较短,并且相比前者,其需要等待的本地性属性的类型减少了一种;对于数据量特别少的任务,不仅为其设置的本地等待时间很短,并且其需要等待的本地性属性的类型也很少。这种方式是为了依据不同的数据量了解各个任务对从本地读取数据的需求的强烈程度,从而对应的调整不同的任务等待本地进程的时间,从使得所需数据量不同的任务均能够尽量快速的获取到相应的数据,尽快的启动计算,从而提高任务的整体处理效率。另外,由于本实施例中,第一阈值范围区间与第二阈值范围区间对应的本地性属性的类型不同,因此,两者对应的本地等待时间可以是相同的。当然,以上仅为一种具体的实施例,在其他的实施例中,第三阈值范围区间也可以直接对应any类型,阈值范围区间的设置个数以及每个阈值范围区间所对应的本地性属性的类型,本发明不作具体限定。

作为优选地,预设调整规则包括多个阈值范围区间,每个阈值范围区间对应有三个本地等待时间n1、n2和n3;n1≥n2≥n3;

n1用于调整process_local类型的本地性属性对应的本地等待时间;

n2用于调整node_local类型的本地性属性对应的本地等待时间;

n3用于调整rack_local类型的本地性属性对应的本地等待时间;

若n1、n2和n3均为0,则本地性属性的类型为any,后续直接选择任一进程运行spark任务。

其中,优选n1>n2≥n3,或n1≥n2>n3。在具体实现时,可以令第一阈值范围区间内,n1>n2>n3,第二范围区间内n1>n2≥n3,第三范围区间内n1=n2=n3=0;或者,每个阈值范围区间内均为n1>n2>n3。或者还可以有其他组合,每个阈值范围区间内可以选择n1>n2≥n3、n1>n2≥n3、n1≥n2>n3、n1=n2=n3中的任一种设置。

可以理解的是,不同类型的本地性属性其重要程度是不同的,因此,若是为不同的本地性属性设置相同的本地等待时间的话,可能会使得整个任务等待进程时的时间过长。因此,本实施例中,为不同类型的本地性属性设置了不同的本地等待时间。其中,由于以上提到的几种本地性属性的优良程度的顺序为process_local大于node_local大于rack_local,因此,本发明按照前述顺序来设置各个本地性属性对应的本地等待时间,本地性属性的类型越好,则其对应的本地等待时间越长,反之则越短。从而使得任务能够尽可能地等待到性能最优的本地化进程来进行任务的执行,提高任务的处理效率。

本发明还提供了一种spark任务运行时间调整装置,应用于分布式文件系统,参见图2所示,图2为本发明提供的一种spark任务运行时间调整装置的结构示意图。该装置包括:

数据量获取模块1,用于接收spark任务后,依据任务的内容从分布式文件系统的元数据信息中,获取spark任务运行时需要从分布式文件系统中读取的数据量;

查询模块2,用于依据预设调整规则,确定数据量所处的阈值范围区间以及该阈值范围区间所对应的本地等待时间;阈值范围区间越大其对应的本地等待时间越长;

等待运行模块3,用于依据确定的本地等待时间以及本地性属性的类型依次进行等待,等待过程中,检测到符合当前等待的本地性属性的进程后,通过该进程运行spark任务。

作为优选地,查询模块2还用于:

依据预设调整规则,确定数据量所处的阈值范围区间对应的本地性属性的类型,阈值范围区间越大对应的本地性属性的类型个数越多。

本发明提供的spark任务运行时间调整装置是用于实现以上spark任务运行时间调整方法的,因此,这里的spark任务运行时间调整装置与前述spark任务运行时间调整方法一一对应。

本发明还提供了一种spark任务运行时间调整设备,包括:

存储器,用于存储计算机程序;处理器,用于执行计算机程序时实现以下方法:

接收spark任务后,依据任务的内容从分布式文件系统的元数据信息中,获取spark任务运行时需要从分布式文件系统中读取的数据量;

依据预设调整规则,确定数据量所处的阈值范围区间以及该阈值范围区间所对应的本地等待时间;阈值范围区间越大其对应的本地等待时间越长;

依据所确定的本地等待时间以及本地性属性的类型依次进行等待,等待过程中,检测到符合当前等待的本地性属性的进程后,通过该进程运行spark任务。

在优选实施例中,所述存储器存储的计算机程序中的预设调整规则包括:三个阈值范围区间,第一阈值范围区间对应的本地等待时间为n1,第二阈值范围区间对应的本地等待时间为n2,第三阈值范围区间对应的本地等待时间为n3;第一阈值范围区间>第二阈值范围区间>第三阈值范围区间;n1>n2>n3>0;本地性属性的类型包括process_local、node_local以及rack_local。

在另一优选实施例中,所述存储器存储的计算机程序中的预设调整规则包括:三个阈值范围区间,第一阈值范围区间对应的本地等待时间为n1,第二阈值范围区间对应的本地等待时间为n2,第三阈值范围区间对应的本地等待时间为0;第一阈值范围区间>第二阈值范围区间>第三阈值范围区间;n1>n2>0;其中,若确定的本地等待时间大于0,则本地性属性的类型包括process_local、node_local以及rack_local;若确定的本地等待时间为0,则本地性属性的类型为any,后续直接选择任一进程运行spark任务。

在另一优选实施例中,所述计算机程序被所述处理器执行获取spark任务运行时所需读取的数据量之后,还实现:

依据预设调整规则,确定数据量所处的阈值范围区间对应的本地性属性的类型,阈值范围区间越大对应的本地性属性的类型个数越多。

在另一优选实施例中,所述存储器存储的计算机程序中的预设调整规则包括:三个阈值范围区间,第一阈值范围区间对应的本地等待时间为n1,本地性属性的类型包括process_local、node_local以及rack_local;

第二阈值范围区间对应的本地等待时间为n2,本地性属性的类型包括process_local、node_local以及rack_local中的任意两种;

第三阈值范围区间对应的本地等待时间为n3,n3大于0时,本地性属性的类型包括process_local、node_local以及rack_local中的任意一种;n3=0时,本地性属性的类型为any;

第一阈值范围区间>第二阈值范围区间>第三阈值范围区间;n1和n2大于0;n1≥n2≥n3。

在另一优选实施例中,所述存储器存储的计算机程序中的,预设调整规则包括多个阈值范围区间,每个阈值范围区间对应有三个本地等待时间n1、n2和n3;n1≥n2≥n3;

n1用于调整process_local类型的本地性属性对应的本地等待时间;

n2用于调整node_local类型的本地性属性对应的本地等待时间;

n3用于调整rack_local类型的本地性属性对应的本地等待时间;

若n1、n2和n3均为0,则本地性属性的类型为any,后续直接选择任一进程运行spark任务。

本发明还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如以下方法:

接收spark任务后,依据任务的内容从分布式文件系统的元数据信息中,获取spark任务运行时需要从分布式文件系统中读取的数据量;

依据预设调整规则,确定数据量所处的阈值范围区间以及该阈值范围区间所对应的本地等待时间;阈值范围区间越大其对应的本地等待时间越长;

依据所确定的本地等待时间以及本地性属性的类型依次进行等待,等待过程中,检测到符合当前等待的本地性属性的进程后,通过该进程运行spark任务。

作为优选地,所述计算机程序中的预设调整规则包括:三个阈值范围区间,第一阈值范围区间对应的本地等待时间为n1,第二阈值范围区间对应的本地等待时间为n2,第三阈值范围区间对应的本地等待时间为n3;第一阈值范围区间>第二阈值范围区间>第三阈值范围区间;n1>n2>n3>0;本地性属性的类型包括process_local、node_local以及rack_local。

在另一优选实施例中,所述计算机程序中的预设调整规则包括:三个阈值范围区间,第一阈值范围区间对应的本地等待时间为n1,第二阈值范围区间对应的本地等待时间为n2,第三阈值范围区间对应的本地等待时间为0;第一阈值范围区间>第二阈值范围区间>第三阈值范围区间;n1>n2>0;

其中,若确定的本地等待时间大于0,则本地性属性的类型包括process_local、node_local以及rack_local;

若确定的本地等待时间为0,则本地性属性的类型为any,后续直接选择任一进程运行spark任务。

在另一优选实施例中,所述计算机程序被处理器执行获取spark任务运行时所需读取的数据量之后,还执行:

依据预设调整规则,确定数据量所处的阈值范围区间对应的本地性属性的类型,阈值范围区间越大对应的本地性属性的类型个数越多。

在另一优选实施例中,所述计算机程序中的预设调整规则包括:三个阈值范围区间,第一阈值范围区间对应的本地等待时间为n1,本地性属性的类型包括process_local、node_local以及rack_local;

第二阈值范围区间对应的本地等待时间为n2,本地性属性的类型包括process_local、node_local以及rack_local中的任意两种;

第三阈值范围区间对应的本地等待时间为n3,n3大于0时,本地性属性的类型包括process_local、node_local以及rack_local中的任意一种;n3=0时,本地性属性的类型为any;

第一阈值范围区间>第二阈值范围区间>第三阈值范围区间;n1和n2大于0;n1≥n2≥n3。

在另一优选实施例中,所述计算机程序中的预设调整规则包括:多个阈值范围区间,每个阈值范围区间对应有三个本地等待时间n1、n2和n3;n1≥n2≥n3;

n1用于调整process_local类型的本地性属性对应的本地等待时间;

n2用于调整node_local类型的本地性属性对应的本地等待时间;

n3用于调整rack_local类型的本地性属性对应的本地等待时间;

若n1、n2和n3均为0,则本地性属性的类型为any,后续直接选择任一进程运行spark任务。

以上的几种具体实施方式仅是本发明的优选实施方式,以上几种具体实施例可以任意组合,组合后得到的实施例也在本发明的保护范围之内。应当指出,对于本技术领域的普通技术人员来说,相关专业技术人员在不脱离本发明精神和构思前提下推演出的其他改进和变化,均应包含在本发明的保护范围之内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

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