数据并行处理方法、系统及负载均衡调度器的制作方法

文档序号:6403155阅读:185来源:国知局
专利名称:数据并行处理方法、系统及负载均衡调度器的制作方法
技术领域
本发明涉及数据处理技术领域,更具体地说,涉及数据并行处理方法、系统及负载均衡调度器。
背景技术
在分布式计算环境下,例如,由Google提出的MapReduce (以下简称MR)并行计算编程模型中,作业所需处理的数据已经被划分为多个数据块,并以数据块为单位存储在一个或多个服务器节点上。客户提交作业后,该作业将被划分成与数据块一一对应的任务,这些任务将被分配到不同的服务器节点上并行执行。如果执行任务的服务器节点上未存储该任务对应的数据块,则需要通过网络数据传输,将数据块从存储它的服务器节点传输至该执行任务的服务器节点。因此,如何减少服务器节点之间的网络数据传输开销,提升数据处理的性能,成为目前研究的热门。

发明内容
有鉴于此,本发明实施例的目的在于提供数据并行处理方法、系统及负载均衡调度器,以解决上述问题。为实现上述目的,本发明实施例提供如下技术方案:一种数据并行处理方法,基于服务器集群,所述服务器集群中的任一服务器具有执行任务和存储数据的能力;所述方法包括:将用户通过 客户端提交的作业放入作业等待队列,并收集所述作业的数据分布信息;所述作业所需处理的数据被划分为多个数据块,并分别存储于所述服务器集群中的服务器上,每一所述数据块对应一个数据处理任务,所述数据分布信息包括所述作业对应的数据块的分布信息;当所述服务器集群正在执行的作业数小于第一阈值时,根据所述数据分布信息,预测在不同执行顺序下按照计算本地化策略分配所述作业等待队列中的作业所导致的系统总体负载均衡状态,获取最优执行顺序;对所述作业等待队列中的作业按所述最优执行顺序进行重新排序,并按照重新排序后的顺序依次调度作业等待队列中的作业进入执行状态,直至所述服务器集群正在执行的作业数达到第一阈值或者等待作业队列为空;按照计算本地化策略分配每一进入执行状态的作业,以便服务器执行数据处理任务;所述按照计算本地化策略分配包括:针对作业所需处理的数据的每一个数据块创建一个数据处理任务,并将每一数据处理任务分配至存储其对应的数据块的服务器上。一种数据并行处理系统,包括服务器集群和负载均衡调度器;
所述服务器集群中的任一服务器具有执行任务和存储数据的能力;所述负载均衡调度器包括:预处理单元,用于将用户通过客户端提交的作业放入作业等待队列,并收集所述作业的数据分布信息;所述作业所需处理的数据被划分为多个数据块,并分别存储于所述服务器集群中的服务器上,每一所述数据块对应一个数据处理任务,所述数据分布信息包括所述作业对应的数据块的分布信息;预测单元,用于当所述服务器集群正在执行的作业数小于第一阈值时,根据所述数据分布信息,预测在不同执行顺序下按照计算本地化策略分配所述作业等待队列中的作业所导致的系统总体负载均衡状态,获取最优执行顺序;作业调度单元,用于对所述作业等待队列中的作业按所述最优执行顺序进行重新排序,并按照重新排序后的顺序依次调度重新排序后的作业等待队列中的作业进入执行状态,直至所述服务器集群正在执行的作业数达到第一阈值或者等待作业队列为空;第一任务调度单元,用于按照计算本地化策略分配每一进入执行状态的作业,以便服务器执行数据处理任务;所述按照计算本地化策略分配包括:针对作业所需处理的数据的每一个数据块创建一个数据处理任务,并将每一数据处理任务分配至存储其对应的数据块的服务器上。一种负载均衡调度器,与服务器集群相配合,所述服务器集群中的任一服务器具有执行任务和存储数据的能力;所述负载均衡调度器包括:预处理单元,用于将用户通过客户端提交的作业放入作业等待队列,并收集所述作业的数据分布信息;所述作业所需处理的数据被划分为多个数据块,并分别存储于所述服务器集群中的服务器上,每一所述数据块对应一个数据处理任务,所述数据分布信息包括所述作业对应的数据块的分布信息;预测单元,用于当所述服务器集群正在执行的作业数小于第一阈值时,根据所述数据分布信息,预测在不同执行顺序下按照计算本地化策略分配所述作业等待队列中的作业所导致的系统总体负载均衡状态,获取最优执行顺序;作业调度单元,用于对所述作业等待队列中的作业按所述最优执行顺序进行重新排序,并按照重新排序后的顺序依次调度重新排序后的作业等待队列中的作业进入执行状态,直至所述服务器集群正在执行的作业数达到第一阈值或者等待作业队列为空;第一任务调度单元,用于按照计算本地化策略分配每一进入执行状态的作业,以便服务器执行数据处理任务;所述按照计算本地化策略分配包括:针对作业所需处理的数据的每一个数据块创建一个数据处理任务,并将每一数据处理任务分配至存储其对应的数据块的服务器上。可见,在本发明实施例中,服务器集群中的任一服务器具有执行任务和存储数据的能力。在此基础上,在作业调度层面上,本发明实施例按照计算本地化策略预测不同执行顺序下的系统总体负载均衡状态,选择出可令系统总体负载均衡状态最优的执行顺序,并按此顺序调度作业。在任 务调度层面,本发明实施例按照计算本地化策略分配每一进入执行状态的作业。由于计算本地化策略是将每一数据处理任务分配至存储其对应的数据块的服务器上,这样,在处理任务时,同一服务器既作为存储数据块的服务器节点又作为执行任务的服务器节点,减少了服务器节点之间的网络数据传输,提升了数据处理的性能。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例提供的基于MR的数据处理示意图;图2为本发明实施例提供的数据并行处理方法流程图;图3为本发明实施例提供的系统负载均衡状态示意图;图4为本发明实施例提供的全局搜索树示意图;图5a和图5b为本发明实施例提供的启发式搜索策略流程示意图;图6为本发明实施例提供的数据并行处理系统示意图;图7为本发明实施例提供的负载均衡调度器结构示意图。
具体实施例方式为了引用和清楚起见,下文中使用的技术名词、简写或缩写总结解释如下:计算本地化:计算本地化是指在分布式计算环境下,通过计算逻辑的分配,使得处理数据的计算服务器(计算 节点)和存储这些数据的存储服务器节点(存储节点)相同,以此减少计算节点和存储节点之间的网络数据传输开销,提升数据处理的性能;数据本地性:指的是计算本地化的可满足程度,即计算所需的数据是否能够不通过网络传输,而直接在计算所在节点获取的能力。一般在大规模分布式计算环境中,用本地化率(完全本地化的计算所占百分比)来表示整体本地化程度;负载均衡:指的是在分布式计算环境下,将负载均衡地分派到两到多个节点(服务器)上,避免局部负载过重,以便获得更高的资源利用率,提高数据处理性能。负载可以是计算负载、i/o负载、网络负载等等。下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。MapReduce (以下简称MR)是由Google提出的并行计算编程模型。它的基本思想是两个函数(Map函数和Reduce函数),任何复杂的数据处理请求(作业)在大规模集群上的并行计算都被高度抽象到了这两个函数。MR模型不但在实际应用中发挥了极好的效果,而且易学易用,受到大型网络IT企业的青睐。MR模型适合处理数据密集型计算。MR作业所需处理的数据被划分为多个数据块(数据块之间不相关,可以独立地进行计算),这些数据块被存储在一个或多个服务器节点上。图1为基于MR的数据处理示意图,假设处理该作业所需数据为集合S,该集合被划分为η个互不相交的数据子集(数据块)SI Sn,即S=Sl U S2…U Sn。每一个计算请求(作业)被分解为大量的map计算(map任务)和少量reduce计算(reduce任务),map计算与
数据块(SI Sn)--对应,reduce针对map的计算结果(MR计算的中间结果)各自独立
计算,并将结果保存到用户指定位置。其中,map任务需要分配到不同的计算节点上并行执行。因此,在MR计算环境下,核心部分是map任务的调度。其他类似的分布式计算环境下,也需要调度任务。在分布式计算环境下,存在如下问题:假定,服务器节点A执行任务jobl,但未存储jobl对应的数据块,则需要通过网络数据传输,将该数据块从存储它的服务器节点传输至服务器节点A。如何减少计算过程中服务器节点之间的网络数据传输开销,提升数据处理的性能,成为目前研究的热门。实际上,已有任务调度方式都是将满足特定需求(比如负载均衡)作为第一目标,将提高数据本地性作为第二目标,导致实际运行情况下本地化率不高。而本发明所提供技术方案则将提高数据本地性作为第一目标,并且通过新的思路解决数据本地性和系统负载均衡相冲突的问题,在提高数据本地性的同时,优化系统总体的负载均衡,降低了计算过程中的网络IO开销,增加系统的吞吐率和减少单个作业的执行时间。另外,目前的MR调度方式没有区分作业调度和任务调度,这是因为MR计算最初主要用于批量数据处理,一般只有少数几个作业在执行,作业之间干扰较小,不需要区分作业调度和任务调度。但在有大量作业并发执行的情况下,如果不区分作业级别和任务级别的调度,将加大调度方式的优化难度。而本发明所提供技术方案的核心是作业级别调度和任务级别调度:在作业级别调度中,通过负载均衡分析预测出全局负载均衡状况最好的执行顺序;在任务调度级别中,当作业进入执行状态后,会被划分成若干Map任务和Reduce任务,依据本地性原则将map任务分布到其数据所在服务器上运行。

下面将具体介绍。本发明所提供技术方案基于服务器集群,其实施的前提是服务器集群中的任一服务器具有执行任务和存储数据的能力,这样,任一服务器可同时作为计算节点和存储节点。或者说,本发明所提供的技术方案,是基于每一个服务器包含独立的存储和计算能力,集群中没有共享存储的假设。目前的大型服务提供商以及数据中心都是采用这种模式,即由大量中低端服务器通过互联网连接而成的大规模集群计算环境,因此,该假设是合理的。请参见图2,本发明要求保护的数据并行处理方法至少包括如下步骤:S1、将用户通过客户端提交的作业放入作业等待队列,并收集作业的数据分布信肩、O需要说明的是,用户提交的作业所需处理的数据,被划分为多个(至少两个)数据块(每一数据块对应一个map任务),并存储于服务器集群中的服务器上。数据分布信息则包括数据块的分布信息。S2、当服务器集群正在执行的作业数小于第一阈值时,根据数据分布信息,预测在不同执行顺序下按照计算本地化策略分配作业等待队列中的作业所导致的系统总体负载均衡状态,获取最优执行顺序。第一阈值大小的设置不在本方案讨论之内,本领域技术人员可以基于其它技术或者经验进行设置。在MR技术中,第一阈值可由用户指定。第一阈值实际上代表了服务器集群可以承受的最大并行执行的作业数,如果没有达到第一阈值,表示服务器集群还有能力执行更多的作业。S3、对作业等待队列中的作业按最优执行顺序进行重新排序,并按照重新排序后的顺序依次调度重新排序后的作业等待队列中的作业进入执行状态,直至服务器集群正在执行的作业数达到第一阈值或者等待作业队列为空。调度多少个作业进入执行状态,需要由上述第一阈值以及正处于执行状态的作业
数确定。举例来讲,服务器集群中有4台服务器,每台服务器最多可执行20个作业,可将第一阈值设置为80。如果用户提交了 100个作业,则有20个作业需要放入作业等待队列。
假设,服务器集群完成了 4个作业,这样,服务器集群正在执行的作业数为76小于80,此时,将进行预测以获取最优执行顺序(对应步骤S2 )。之后,对作业等待队列中的20个作业按最优执行顺序进行重新排序,重新排序后,调度作业等待队列中的前4个作业进入执行状态(对应步骤S3)。S4、按照计算本地化策略分配每一进入执行状态的作业,以便服务器执行数据处
理任务。需要说明的是,每当服务器集群正在执行的作业数小于第一阈值时,都需要重新执行步骤S2-S4。上述步骤S2和S4中的“按照计算本地化策略分配”具体可包括:针对作业所需处理的数据的每一个数据 块创建一个数据处理任务,并将每一数据处理任务分配至存储其对应的数据块的服务器上。也即,只看map任务对应的数据块存储在哪个服务器上,就将该map任务调度到该服务器上执行。举例来讲,服务器集群中有4台服务器Fl至F4。作业Xl对应的数据被划分为2个数据块,并分别存于Fl和F2上,作业X2对应的数据被划分为3个数据块,被分别存于F1、F2、F4中。在本申请中,按照计算本地化策略分配时,会将作业Xl划分为两个map任务,并将这两个map任务分别分配至Fl和F2上;将作业X2划分为三个map任务,并将这三个map任务分别分配至F1、F2、F4上。服务器集群中的每一服务器上维护有本地任务队列(也可叫任务等待队列),分配过来的map任务,可放置于本地任务队列中,服务器按照先进先出的原则执行本地任务队列中的任务。更具体的,由于某一 map任务所需要的数据块已经存储在某一服务器中了,因此,只需要将该map任务的计算逻辑调度到该服务器上执行即可。需要说明的是,一次map计算为一个任务,计算逻辑指的是map函数,即计算方法。同一个作业的每一个数据块上的计算逻辑相同,不同的作业的计算逻辑可能不同,也可能相同。此外,在特殊情况下,如果服务器集群正在执行的作业数小于第一阈值、但作业等待队列中只有一个作业,则不需要执行上述步骤S2和S3,直接调度作业等待队列中的作业进入执行状态,之后执行步骤S4。可见,在本发明实施例中,服务器集群中的任一服务器具有执行任务和存储数据的能力。在此基础上,在作业调度层面上,本发明实施例按照计算本地化策略预测不同执行顺序下的系统总体负载均衡状态,选择出可令系统总体负载均衡状态最优(负载最小、且负载最均衡)的执行顺序,并按此顺序调度作业。在任务调度层面,本发明实施例按照计算本地化策略分配任务,令每一个Map任务都调度到该任务所需数据所在服务器上执行,从而使得Map任务的执行没有网络数据传输开销。减少了服务器节点之间的网络数据传输,提升了数据处理的性能。在本发明其他实施例中,上述方法还可包括:周期性检查服务器集群中各服务器的空闲时间;从任务数最多的服务器上调度数据处理任务至空闲时间超过第二阈值的服务器上。更具体的,可将任务数最多的服务器的本地任务队列末尾的数据处理任务调度至空闲时间超过第二阀值的服务器上。需要说明的是,简单的调度方式是当调度时机成熟时,分别计算作业等待队列中每一个作业进入执行状态后的系统总体负载均衡状态,选择负载均衡最好的作业,调度其进入执行状态。该调度方式计算简单,且在初始运行时可以取得较好的效果,但会导致负载均衡状况不好的作业慢慢积压,长时间运行后,可能造成系统的负载极度不均衡,图3示意了这种情况,图3中纵坐标是负载方差(由负载方差可看出负载不均衡状态),横坐标是时间。为了避免图3的上述情况,本发明实施例在进行预测时,不是预测单个作业进入执行状态后的系统总体负载均衡状态,而是考虑所有作业如果按照某种执行顺序进入执行状态后的系统总体负载均衡状态,选择出最优的执行顺序,从而避免图3所示的系统性能急剧衰减的情况出现 。下面将对作业调度进行详细介绍。在作业调度方面,如何进行预测以得到最优执行顺序是关键。在本发明一个实施例中,上述步骤S2中“预测作业等待队列中的作业在不同执行顺序下所导致的系统总体负载均衡状态,获取最优执行顺序”可包括如下子步骤:一,构造全局搜索树,全局搜索树包括共享同一根节点的多条搜索路径,每一搜索路径中包括叶节点;根节点表征服务器集群当前的负载均衡状态;叶节点表征作业等待队列中的作业,不同的搜索路径表征不同的执行顺序;以作业等待队列中有3个作业,并且这3个作业的ID分别是jobl_job3为例,全局搜索树(参见图4)可通过下述子步骤构造:stepl,构造第一层,第一层只有一个根节点(初始节点),根节点以jobO表示。step2,由于系统中有N个(3个)等待的作业,所以下一个进入执行状态的作业有N种可能的选择,从而,第二层可以扩展N个叶节点,可用作业ID表示叶节点。St印3,构造第三层,由于构造第二层时已经选择了一个作业,所以,基于第二层的每一个节点,可以扩展N-1个(2个)节点形成第三层。Step4,以此类推,直到无法再扩展,即可以完成整个全局搜索树的构造。上述全局搜索树中的每一搜索路径也可视为作业执行序列,搜索最优执行顺序相当于搜索最优作业执行序列。本实施例将寻找最优作业执行序列抽象为一个图搜索数学模型,即在如图4的全局搜索树中基于某些搜索算法寻找从根节点到叶节点的一条最佳路径,从而获取到最优执行顺序。二,计算不同搜索路径的负载均衡预测值(负载均衡预测值用于表征系统总体负载均衡状态),将负载均衡预测值最小的搜索路径对应的执行顺序作为最优执行顺序。但需要说明的是,如果有N个等待作业的话,那么就有ANN种搜索路径,显然在每一次调度时对当前等待队列中的所有作业进行全局考虑,计算量会非常大,因此,优选的,在本发明下述实施例中,采用启发式的搜索策略计算。参见图5a,启发式的搜索策略详细内容如下:步骤A,将根节点作为目标节点,计算目标节点的评价值,并将根节点的评价值作为每一搜索路径的负载均衡预测值; 步骤B,选择负载均衡预测值最小的搜索路径作为目标搜索路径,将目标搜索路径对应的执行顺序作为目标执行顺序;步骤C判断目标搜索路径中是否还存在未进行负载均衡预测值计算的叶节点;如果否,将目标执行顺序作为最优执行顺序(步骤E);如果是,将目标搜索路径中当前目标节点的下一叶节点作为目标节点,计算目标节点的评价值作为所属搜索路径的负载均衡预测值(步骤D),返回选择负载均衡预测值最小的搜索路径作为目标搜索路径的步骤(步骤B)。下面,请参见图5b,本文将以作业等待队列中有P个(P = 5)作业,这5个作业的ID分别是jobl-job5为例(P决定了全局搜索树的层数或者说是高度,全局搜索树的层数或高度为p+l ),对启发式的搜索策略进行更详细的介绍。S501,计算根节点的评价值f (O);
S502,在根节点基础上,扩展P个叶节点,并针对每一个叶节点,计算每一叶节点的评价值。需要说明的是,在步骤S502中,全局搜索树中的所有搜索路径都分别为目标搜索路径(因为每一搜索路径的f (O)都相等),而各搜索路径中的第I个叶节点均分别为目标节点。至于具体如何计算评价值,本文后续将进行详细的介绍。S503,在已经扩展的搜索树的叶节点中找到评价值最小的节点,并扩展该节点的下层节点作为目标节点,计算评价值。假设,在执行步骤S502 后,jobO_>jobl_>job3_>job5_>job4_>job2 这一作业执行序列中jobl对应的评价值最小。则扩展jobl对应的叶节点的下层节点。扩展的下一层叶节点分别是job2、job3、job4、job5对应的叶节点,并分别计算各叶节点的评价值。S504,循环直到扩展到全局搜索树的第P+1层,即找到了最优作业执行序列,则搜索过程结束。下面将介绍如何计算评价值。假设在某一目标搜索路径中,目标节点是第M层节点。针对每一目标节点,都可用如下函数计算其评价值f (M):f (M) =g (M) +h (M)(公式一)其中:
g (M)表示目标节点对应的作业执行时,从根节点到目标节点所涉及的所有作业的负载均衡值的和(包括初始状态的负载均衡值)。g(M)可用下式予以计算:
权利要求
1.一种数据并行处理方法,其特征在于,基于服务器集群,所述服务器集群中的任一服务器具有执行任务和存储数据的能力; 所述方法包括: 将用户通过客户端提交的作业放入作业等待队列,并收集所述作业的数据分布信息;所述作业所需处理的数据被划分为多个数据块,并分别存储于所述服务器集群中的服务器上,每一所述数据块对应一个数据处理任务,所述数据分布信息包括所述作业对应的数据块的分布信息; 当所述服务器集群正在执行的作业数小于第一阈值时,根据所述数据分布信息,预测在不同执行顺序下按照计算本地化策略分配所述作业等待队列中的作业所导致的系统总体负载均衡状态,获取最优执行顺序; 对所述作业等待队列中的作业按所述最优执行顺序进行重新排序,并按照重新排序后的顺序依次调度作业等待队列中的作业进入执行状态,直至所述服务器集群正在执行的作业数达到第一阈值或者等待作业队列为空; 按照计算本地化策略分配每一进入执行状态的作业,以便服务器执行数据处理任务; 所述按照计算本地化策略分配包括: 针对作业所需处理的数据的每一个数据块创建一个数据处理任务,并将每一数据处理任务分配至存储其对应的数据块的服务器上。
2.如权利要求1所述的方法,其特征在于,还包括: 周期性检查所述服务器集群中各服务器的空闲时间; 从任务数最多的服务器上调度数据处理任务至空闲时间超过第二阈值的服务器上。
3.如权利要求2所述的方法,其特征在于: 所述预测所述作业等待队列中的作业在不同执行顺序下所导致的系统总体负载均衡状态,获取最优执行顺序包括: 构造全局搜索树,所述全局搜索树包括共享同一根节点的多条搜索路径,每一搜索路径中包括叶节点;所述根节点表征服务器集群当前的负载均衡状态;所述叶节点表征所述作业等待队列中的作业,不同的搜索路径表征不同的执行顺序; 计算不同搜索路径的负载均衡预测值,将负载均衡预测值最小的搜索路径对应的执行顺序作为最优执行顺序;所述负载均衡预测值用于表征所述系统总体负载均衡状态。
4.如权利要求3所述的方法,其特征在于:所述计算不同搜索路径的负载均衡预测值,将负载均衡预测值最小的搜索路径对应的执行顺序作为最优执行顺序包括: 将根节点作为目标节点,计算所述目标节点的评价值,并将根节点的评价值作为每一搜索路径的负载均衡预测值; 选择负载均衡预测值最小的搜索路径作为目标搜索路径,将目标搜索路径对应的执行顺序作为目标执行顺序; 判断所述目标搜索路径中是否还存在未进行负载均衡预测值计算的叶节点;如果否,将所述目标执行顺序作为最优执行顺序;如果是,将所述目标搜索路径中当前目标节点的下一叶节点作为目标节点,计算所述目标节点的评价值作为所属搜索路径的负载均衡预测值,并返回所述选择负载均衡预测值最小的搜索路径作为目标搜索路径的步骤。
5.如权利要求4所述的方法,其特征在于:所述作业等待队列中的作业数量为P个,所述P为正整数; 在所述目标搜索路径中,所述目标节点是第M层节点,M不小于1,不大于P+1 ; 所述计算所述目标节点的评价值包括: 使用公式f (M) =g (M)+h (M)计算所述目标节点的评价值f (M); 其中:
6.如权利要求5所述的方法,其特征在于,所述负载用任务数表征。
7.一种数据并行处理系统,其特征在于,包括服务器集群和负载均衡调度器; 所述服务器集群中的任一服务器具有执行任务和存储数据的能力; 所述负载均衡调度器包括: 预处理单元,用于将用户通过客户端提交的作业放入作业等待队列,并收集所述作业的数据分布信息;所述作业所需处理的数据被划分为多个数据块,并分别存储于所述服务器集群中的服务器上,每一所述数据块对应一个数据处理任务,所述数据分布信息包括所述作业对应的数据块的分布信息; 预测单元,用于当所述服务器集群正在执行的作业数小于第一阈值时,根据所述数据分布信息,预测在不同执行顺序下按照计算本地化策略分配所述作业等待队列中的作业所导致的系统总体负载均衡状态,获取最优执行顺序; 作业调度单元,用于对所述作业等待队列中的作业按所述最优执行顺序进行重新排序,并按照重新排序后的顺序依次调度重新排序后的作业等待队列中的作业进入执行状态,直至所述服务器集群正在执行的作业数达到第一阈值或者等待作业队列为空; 第一任务调度单元,用于按照计算本地化策略分配每一进入执行状态的作业,以便服务器执行数据处理任务; 所述按照计算本地化策略分配包括: 针对作业所需处理的数据的每一个数据块创建一个数据处理任务,并将每一数据处理任务分配至存储其对应的数据块的服务器上。
8.一种负载均衡调度器,其特征在于,与服务器集群相配合,所述服务器集群中的任一服务器具有执行任务和存储数据的能力;所述负载均衡调度器包括: 预处理单元,用于将用户通过客户端提交的作业放入作业等待队列,并收集所述作业的数据分布信息;所述作业所需处理的数据被划分为多个数据块,并分别存储于所述服务器集群中的服务器上,每一所述数据块对应一个数据处理任务,所述数据分布信息包括所述作业对应的数据块的分布信息; 预测单元,用于当所述服务器集群正在执行的作业数小于第一阈值时,根据所述数据分布信息,预测在不同执行顺序下按照计算本地化策略分配所述作业等待队列中的作业所导致的系统总体负载均衡状态,获取最优执行顺序; 作业调度单元,用于对所述作业等待队列中的作业按所述最优执行顺序进行重新排序,并按照重新排序后的顺序依次调度重新排序后的作业等待队列中的作业进入执行状态,直至所述服务器集群正在执行的作业数达到第一阈值或者等待作业队列为空; 第一任务调度单元,用于按照计算本地化策略分配每一进入执行状态的作业,以便服务器执行数据处理任务; 所述按照计算本地化策略分配包括: 针对作业所需处理的数据的每一个数据块创建一个数据处理任务,并将每一数据处理任务分配至存储其对应的数据块的服务器上。
全文摘要
本发明实施例公开了数据并行处理方法、系统及负载均衡调度器,在本发明实施例中,服务器集群中的任一服务器具有执行任务和存储数据的能力。在此基础上,在作业调度层面上,本发明实施例按照计算本地化策略预测不同执行顺序下的系统总体负载均衡状态,选择出可令系统总体负载均衡状态最优的执行顺序,并按此顺序调度作业。在任务调度层面,本发明实施例按照计算本地化策略分配每一进入执行状态的作业。由于计算本地化策略是将每一数据处理任务分配至存储其对应的数据块的服务器上,这样,在处理任务时,同一服务器既作为存储数据块的服务器节点又作为执行任务的服务器节点,减少了服务器节点之间的网络数据传输,提升了数据处理的性能。
文档编号G06F9/38GK103226467SQ201310195179
公开日2013年7月31日 申请日期2013年5月23日 优先权日2013年5月23日
发明者杨树强, 华中杰, 贾焰, 尹洪, 赵辉, 李爱平, 陈志坤, 金松昌, 周斌, 韩伟红, 韩毅, 舒琦 申请人:中国人民解放军国防科学技术大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1