应用于Spark的作业分配方法及装置.pdf



《应用于Spark的作业分配方法及装置.pdf》由会员分享,可在线阅读,更多相关《应用于Spark的作业分配方法及装置.pdf(23页完成版)》请在专利查询网上搜索。
1、(19)国家知识产权局(12)发明专利申请(10)申请公布号 (43)申请公布日 (21)申请号 202310194598.1(22)申请日 2023.02.27(71)申请人 中国工商银行股份有限公司地址 100140 北京市西城区复兴门内大街55号(72)发明人 唐苏乐曹磊雷刚(74)专利代理机构 北京三友知识产权代理有限公司 11127专利代理师 崔博(51)Int.Cl.G06F 9/50(2006.01)(54)发明名称应用于Spark的作业分配方法及装置(57)摘要本发明实施例公开了一种应用于Spark的作业分配方法及装置,涉及大数据处理技术领域,该方法包括:确定待分配作业的作业类。
2、型;从Reducer节点集合中选择出一个目标Reducer节点,然后将所述待分配作业分配到该目 标Reducer节点;根据第t次作业分配时所述目标Reducer节点在所述作业类型上的选择概率以及第t次作业分配时所述目标Reducer节点在非所述作业类型上的选择概率,重新确定所述目标Reducer节点的选择概率,然后缩放所述Reducer节点集合中其他Reducer节点的选择概率,本发明有助于解决Spark中因数据倾斜问题而导致数据处理性能下降问题。权利要求书3页 说明书13页 附图6页CN 116048815 A2023.05.02CN 116048815 A1.一种应用于Spark的作业分配。
3、方法,其特征在于,包括:在进行第t次作业分配时,确定待分配作业的作业类型,其中,t为大于等于1的整数;进行N轮Reducer节点选择直至从Reducer节点集合中选择出一个目标Reducer节点,然后将所述待分配作业分配到该目标Reducer节点;其中,在进行每轮Reducer节点选择时,先根据第t次作业分配时所述Reducer节点集合中各Reducer节点的选择概率从所述Reducer节点集合中选择出一个Reducer节点,然后计算该选择出的Reducer节点在所述作业类型上的负载阈值,若该选择出的Reducer节点在所述作业类型上的当前负载小于所述负载阈值,则将该选择出的Reducer节点。
4、确定为目标Reducer节点;若该选择出的Reducer节点在所述作业类型上的当前负载大于或等于所述负载阈值,则将该选择的Reducer节点从所述Reducer节点集合中删除,然后更新所述Reducer节点集合中剩余各Reducer节点的选择概率,进而进入下一轮Reducer节点选择,N为大于等于1的整数;根据第t次作业分配时所述目标Reducer节点在所述作业类型上的选择概率以及第t次作业分配时所述目标Reducer节点在非所述作业类型上的选择概率,重新确定所述目标Reducer节点的选择概率,然后基于重新确定的所述目标Reducer节点的选择概率缩放所述Reducer节点集合中其他Redu。
5、cer节点的选择概率,得到第t+1次作业分配时所述Reducer节点集合中各Reducer节点的选择概率。2.根据权利要求1所述的应用于Spark的作业分配方法,其特征在于,还包括:在第t次作业分配时所述目标Reducer节点在所述作业类型上的选择概率以及第t次作业分配时所述目标Reducer节点在非所述作业类型上的选择概率的基础上,根据预设的奖惩更新模型进行选择概率更新,得到第t+1次作业分配时所述目标Reducer节点在所述作业类型上的选择概率以及第t+1次作业分配时所述目标Reducer节点在非所述作业类型上的选择概率。3.根据权利要求1所述的应用于Spark的作业分配方法,其特征在于,。
6、所述确定待分配作业的作业类型,具体包括:从所述待分配作业中取出作业样本;将所述作业样本输入Spark中,利用Map阶段的输入输出量以及Shuffle阶段的输入输出量来计算所述作业样本对应的吞吐量;若所述作业样本对应的吞吐量小于磁盘平均吞吐量,则确定所述待分配作业的作业类型为CPU类型,若所述作业样本对应的吞吐量大于磁盘平均吞吐量,则确定所述待分配作业的作业类型I/O类型。4.根据权利要求1所述的应用于Spark的作业分配方法,其特征在于,所述计算该选择出的Reducer节点在所述作业类型上的负载阈值,具体包括:根据该选择出的Reducer节点在所述作业类型上的计算能力、所有Reducer节点在。
7、所述作业类型上的总计算能力、所有Reducer节点在所述作业类型上的当前总负载以及预设的负载溢出百分比,计算该选择出的Reducer节点在所述作业类型上的负载阈值。5.根据权利要求1所述的应用于Spark的作业分配方法,其特征在于,根据第t次作业分配时所述目标Reducer节点在所述作业类型上的选择概率以及第t次作业分配时所述目标Reducer节点在非所述作业类型上的选择概率,重新确定所述目标Reducer节点的选择概率,具体包括:权利要求书1/3 页2CN 116048815 A2根据第t次作业分配时所述目标Reducer节点在所述作业类型上的选择概率、所述目标Reducer节点在所述作业类。
8、型上的负载量、所有Reducer节点在所述作业类型上的总负载量、所述目标Reducer节点在所述作业类型上的当前负载以及所有Reducer节点在所述作业类型上的当前总负载,计算出第一概率;根据第t次作业分配时所述目标Reducer节点在非所述作业类型上的选择概率、所述目标Reducer节点在非所述作业类型上的负载量、所有Reducer节点在非所述作业类型上的总负载量、所述目标Reducer节点在非所述作业类型上的当前负载以及所有Reducer节点在非所述作业类型上的当前总负载,计算出第二概率;对所述第一概率和所述第二概率进行加权求和,得到重新确定的所述目标Reducer节点的选择概率,其中,所。
9、述第一概率对应的权重值大于所述第二概率对应的权重值。6.根据权利要求1所述的应用于Spark的作业分配方法,其特征在于,还包括:根据所述目标Reducer节点在所述作业类型上的计算能力以及所述目标Reducer节点在非所述作业类型上的计算能力,计算所述目标Reducer节点在所述作业类型上的计算能力比例以及所述目标Reducer节点在非所述作业类型上的计算能力比例。7.根据权利要求6所述的应用于Spark的作业分配方法,其特征在于,根据第t次作业分配时所述目标Reducer节点在所述作业类型上的选择概率以及第t次作业分配时所述目标Reducer节点在非所述作业类型上的选择概率,重新确定所述目标。
10、Reducer节点的选择概率,具体包括:根据第t次作业分配时所述目标Reducer节点在所述作业类型上的选择概率、所述目标Reducer节点在所述作业类型上的负载量、所有Reducer节点在所述作业类型上的总负载量、所述目标Reducer节点在所述作业类型上的当前负载、所有Reducer节点在所述作业类型上的当前总负载以及所述目标Reducer节点在所述作业类型上的计算能力比例,计算出第一概率;根据第t次作业分配时所述目标Reducer节点在非所述作业类型上的选择概率、所述目标Reducer节点在非所述作业类型上的负载量、所有Reducer节点在非所述作业类型上的总负载量、所述目标Reduce。
11、r节点在非所述作业类型上的当前负载、所有Reducer节点在非所述作业类型上的当前总负载以及所述目标Reducer节点在非所述作业类型上的计算能力比例,计算出第二概率;对所述第一概率和所述第二概率进行加权求和,得到重新确定的所述目标Reducer节点的选择概率,其中,所述第一概率对应的权重值大于所述第二概率对应的权重值。8.根据权利要求1所述的应用于Spark的作业分配方法,其特征在于,在所述基于重新确定的所述目标Reducer节点的选择概率缩放所述Reducer节点集合中其他Reducer节点的选择概率之前,还包括:若在选择所述目标Reducer节点时从所述所述Reducer节点集合中删除了。
12、Reducer节点,则初始化所述Reducer节点集合。9.根据权利要求1所述的应用于Spark的作业分配方法,其特征在于,所述方法应用于设置在Map节点上的节点选择器,所述待分配作业为所述节点选择器从所述Map节点获取的。10.一种应用于Spark的作业分配装置,其特征在于,包括:权利要求书2/3 页3CN 116048815 A3作业类型确定单元,用于在进行第t次作业分配时,确定待分配作业的作业类型,其中,t为大于等于1的整数;节点选择单元,用于进行N轮Reducer节点选择直至从Reducer节点集合中选择出一个目标Reducer节点,然后将所述待分配作业分配到该目标Reducer节点;。
13、其中,在进行每轮Reducer节点选择时,先根据第t次作业分配时所述Reducer节点集合中各Reducer节点的选择概率从所述Reducer节点集合中选择出一个Reducer节点,然后计算该选择出的Reducer节点在所述作业类型上的负载阈值,若该选择出的Reducer节点在所述作业类型上的当前负载小于所述负载阈值,则将该选择出的Reducer节点确定为目标Reducer节点;若该选择出的Reducer节点在所述作业类型上的当前负载大于或等于所述负载阈值,则将该选择的Reducer节点从所述Reducer节点集合中删除,然后更新所述Reducer节点集合中剩余各Reducer节点的选择概率,。
14、进而进入下一轮Reducer节点选择,N为大于等于1的整数;选择概率更新单元,用于根据第t次作业分配时所述目标Reducer节点在所述作业类型上的选择概率以及第t次作业分配时所述目标Reducer节点在非所述作业类型上的选择概率,重新确定所述目标Reducer节点的选择概率,然后基于重新确定的所述目标Reducer节点的选择概率缩放所述Reducer节点集合中其他Reducer节点的选择概率,得到第t+1次作业分配时所述Reducer节点集合中各Reducer节点的选择概率。11.根据权利要求10所述的应用于Spark的作业分配装置,其特征在于,还包括:奖惩更新模型单元,用于在第t次作业分配时。
15、所述目标Reducer节点在所述作业类型上的选择概率以及第t次作业分配时所述目标Reducer节点在非所述作业类型上的选择概率的基础上,根据预设的奖惩更新模型进行选择概率更新,得到第t+1次作业分配时所述目标Reducer节点在所述作业类型上的选择概率以及第t+1次作业分配时所述目标Reducer节点在非所述作业类型上的选择概率。12.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至9任意一项所述方法的步骤。13.一种计算机可读存储介质,其上存储有计算机程序/指令,其特征在于,该计算机程序/指令被处理器。
16、执行时实现权利要求1至9任意一项所述方法的步骤。14.一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求1至9任意一项所述方法的步骤。权利要求书3/3 页4CN 116048815 A4应用于Spark的作业分配方法及装置技术领域0001本发明涉及大数据处理技术领域,具体而言,涉及一种应用于Spark的作业分配方法及装置。背景技术0002随着企业需要处理的数据量级越来越大,Spark以其持久化数据以及少量IO读写大量内存执行导致的高处理效率的优势,被广泛用于大规模数据处理中。在许多Spark应用程序中,Map节点输出的数据在Reduce节点上分布。
17、不均匀,浪费了高容量Reduce节点的许多负载空间。通过对Spark的内部原理和数据处理过程进行分析和研究,发现Shuffle阶段的分区算法对数据的处理效率对整个任务的完成时间有着严重的影响。在Spark系统中,作业的总完成时间由最慢的Reduce任务决定,为某些低性能的Reduce分配大量数据会导致数据处理效率低,当其他Reduce处于空闲状态,都在等待当前Reduce处理完毕的时候,称为发生了数据倾斜问题。数据倾斜问题被认为是大数据处理平台中的瓶颈,它对大数据分析系统的性能产生了极大的影响。0003如何解决Spark中因数据倾斜问题而导致数据处理性能下降,进而提高Reduce阶段的数据处理。
18、效率是目前急需解决的技术问题。发明内容0004本发明为了解决Spark中因数据倾斜问题而导致数据处理性能下降的技术问题,提出了一种应用于Spark的作业分配方法及装置。0005为了实现上述目的,根据本发明的一个方面,提供了一种应用于Spark的作业分配方法,该方法包括:0006在进行第t次作业分配时,确定待分配作业的作业类型,其中,t为大于等于1的整数;0007进行N轮Reducer节点选择直至从Reducer节点集合中选择出一个目标Reducer节点,然后将所述待分配作业分配到该目标Reducer节点;其中,在进行每轮Reducer节点选择时,先根据第t次作业分配时所述Reducer节点集合。
19、中各Reducer节点的选择概率从所述Reducer节点集合中选择出一个Reducer节点,然后计算该选择出的Reducer节点在所述作业类型上的负载阈值,若该选择出的Reducer节点在所述作业类型上的当前负载小于所述负载阈值,则将该选择出的Reducer节点确定为目标Reducer节点;若该选择出的Reducer节点在所述作业类型上的当前负载大于或等于所述负载阈值,则将该选择的Reducer节点从所述Reducer节点集合中删除,然后更新所述Reducer节点集合中剩余各Reducer节点的选择概率,进而进入下一轮Reducer节点选择,N为大于等于1的整数;0008根据第t次作业分配时所。
20、述目标Reducer节点在所述作业类型上的选择概率以及第t次作业分配时所述目标Reducer节点在非所述作业类型上的选择概率,重新确定所述目标Reducer节点的选择概率,然后基于重新确定的所述目标Reducer节点的选择概率缩放所说明书1/13 页5CN 116048815 A5述Reducer节点集合中其他Reducer节点的选择概率,得到第t+1次作业分配时所述Reducer节点集合中各Reducer节点的选择概率。0009可选的,所述应用于Spark的作业分配方法,还包括:0010在第t次作业分配时所述目标Reducer节点在所述作业类型上的选择概率以及第t次作业分配时所述目标Redu。
21、cer节点在非所述作业类型上的选择概率的基础上,根据预设的奖惩更新模型进行选择概率更新,得到第t+1次作业分配时所述目标Reducer节点在所述作业类型上的选择概率以及第t+1次作业分配时所述目标Reducer节点在非所述作业类型上的选择概率。0011为了实现上述目的,根据本发明的另一方面,提供了一种应用于Spark的作业分配装置,该装置包括:0012作业类型确定单元,用于在进行第t次作业分配时,确定待分配作业的作业类型,其中,t为大于等于1的整数;0013节点选择单元,用于进行N轮Reducer节点选择直至从Reducer节点集合中选择出一个目标Reducer节点,然后将所述待分配作业分配到。
22、该目标Reducer节点;其中,在进行每轮Reducer节点选择时,先根据第t次作业分配时所述Reducer节点集合中各Reducer节点的选择概率从所述Reducer节点集合中选择出一个Reducer节点,然后计算该选择出的Reducer节点在所述作业类型上的负载阈值,若该选择出的Reducer节点在所述作业类型上的当前负载小于所述负载阈值,则将该选择出的Reducer节点确定为目标Reducer节点;若该选择出的Reducer节点在所述作业类型上的当前负载大于或等于所述负载阈值,则将该选择的Reducer节点从所述Reducer节点集合中删除,然后更新所述Reducer节点集合中剩余各Re。
23、ducer节点的选择概率,进而进入下一轮Reducer节点选择,N为大于等于1的整数;0014选择概率更新单元,用于根据第t次作业分配时所述目标Reducer节点在所述作业类型上的选择概率以及第t次作业分配时所述目标Reducer节点在非所述作业类型上的选择概率,重新确定所述目标Reducer节点的选择概率,然后基于重新确定的所述目标Reducer节点的选择概率缩放所述Reducer节点集合中其他Reducer节点的选择概率,得到第t+1次作业分配时所述Reducer节点集合中各Reducer节点的选择概率。0015可选的,所述应用于Spark的作业分配装置,还包括:0016奖惩更新模型单元,。
24、用于在第t次作业分配时所述目标Reducer节点在所述作业类型上的选择概率以及第t次作业分配时所述目标Reducer节点在非所述作业类型上的选择概率的基础上,根据预设的奖惩更新模型进行选择概率更新,得到第t+1次作业分配时所述目标Reducer节点在所述作业类型上的选择概率以及第t+1次作业分配时所述目标Reducer节点在非所述作业类型上的选择概率。0017为了实现上述目的,根据本发明的另一方面,还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述应用于Spark的作业分配方法的步骤。0018为了实现上述目的,根据本。
25、发明的另一方面,还提供了一种计算机可读存储介质,其上存储有计算机程序/指令,该计算机程序/指令被处理器执行时实现上述应用于Spark的作业分配方法的步骤。0019为了实现上述目的,根据本发明的另一方面,还提供了一种计算机程序产品,包括说明书2/13 页6CN 116048815 A6计算机程序/指令,该计算机程序/指令被处理器执行时实现上述应用于Spark的作业分配方法的步骤。0020本发明的有益效果为:0021本发明实施例在进行第t次作业分配时,先确定待分配作业的作业类型,然后进行N轮Reducer节点选择直至从Reducer节点集合中选择出一个目标Reducer节点,然后根据第t次作业分配。
26、时所述目标Reducer节点在所述作业类型上的选择概率以及第t次作业分配时所述目标Reducer节点在非所述作业类型上的选择概率,重新确定所述目标Reducer节点的选择概率,然后基于重新确定的所述目标Reducer节点的选择概率缩放所述Reducer节点集合中其他Reducer节点的选择概率,得到第t+1次作业分配时所述Reducer节点集合中各Reducer节点的选择概率,本发明解决了Spark中因数据倾斜问题而导致数据处理性能下降的问题,有助于提高Reduce阶段的数据处理效率。附图说明0022为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的。
27、附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:0023图1是本发明实施例应用于Spark的作业分配方法的流程图;0024图2是本发明实施例确定作业类型流程图;0025图3是本发明重新确定目标Reducer节点的选择概率的第一流程图;0026图4是本发明重新确定目标Reducer节点的选择概率的第二流程图;0027图5是本发明的应用场景使用图;0028图6是本发明基于动态分区的Spark集群优化算法大纲图;0029图7是本发明Reducer负载量预测说明图;0030图8是本发。
28、明基于作业分类与增强学习的节点选择说明图;0031图9是本发明实施例应用于Spark的作业分配装置的结构框图;0032图10是本发明实施例计算机设备示意图。具体实施方式0033为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。0034本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实。
29、施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CDROM、光学存储器等)上实施的计算机程序产品的形式。说明书3/13 页7CN 116048815 A70035需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。0036需要说明的是,在不冲。
30、突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。0037需要说明的是,本申请技术方案中对数据的获取、存储、使用、处理等均符合国家法律法规的相关规定。0038需要说明的是,本发明应用于Spark的作业分配方法和装置可用于金融领域,也可用于除金融领域之外的任意领域,本发明应用于Spark的作业分配方法和装置的应用领域不做限定。0039本发明主要的目标是解决Spark中因数据倾斜问题而导致数据处理性能下降的问题,旨在通过Shuffle Read的算法提升提高Reduce阶段的数据处理效率。为了实现上述目标,本发明提供了一种分区方法,如图6所示该方。
31、法包括:1.作业的类型检测,本发明将作业及节点分为I/O或是CPU类型,以便后续算法考虑作业类型及节点类型;2.Reducer节点的负载预测,根据总的负载量,以及处理样本50M样本作业的各节点耗时,预估各Reducer节点的作业处理能力,将其量化为一个固定负载值,能力强则预估的负载量就大;3.资源分配与增强学习模型,实时选择最佳Reducer节点以解决Reduce阶段数据倾斜的问题。利用环境反馈对数据簇进行动态分区,选择Reducer节点的选择进行评价,获得奖励或是惩罚,以此更新动作选择概率。0040图5是本发明的应用场景使用图,如图5所示,本发明的应用场景中具体包含:Map节点、节点选择器以。
32、及r个Reducer节点。在本发明一个可选实施例中,本发明在每个Map节点上设置了对应的节点选择器。需要说明的是,本发明以下实施例的应用于Spark的作业分配方法应用于节点选择器,即本发明应用于Spark的作业分配方法的执行主体为节点选择器。0041图1是本发明实施例应用于Spark的作业分配方法的流程图,如图1所示,在本发明一个实施例中,本发明的应用于Spark的作业分配方法包括步骤S101至步骤S103。0042步骤S101,在进行第t次作业分配时,确定待分配作业的作业类型,其中,t为大于等于1的整数。0043在本发明中,待分配作业为节点选择器从Map节点获取的。节点选择器用于进行负载均衡。
33、,将待分配作业分配到最优的Reducer节点。0044在本发明中,待分配作业的作业类型具体为CPU类型和I/O类型两种。0045步骤S102,进行N轮Reducer节点选择直至从Reducer节点集合中选择出一个目标Reducer节点,然后将所述待分配作业分配到该目标Reducer节点;其中,在进行每轮Reducer节点选择时,先根据第t次作业分配时所述Reducer节点集合中各Reducer节点的选择概率从所述Reducer节点集合中选择出一个Reducer节点,然后计算该选择出的Reducer节点在所述作业类型上的负载阈值,若该选择出的Reducer节点在所述作业类型上的当前负载小于所述负。
34、载阈值,则将该选择出的Reducer节点确定为目标Reducer节点;若该选择出的Reducer节点在所述作业类型上的当前负载大于或等于所述负载阈值,则将该选择的说明书4/13 页8CN 116048815 A8Reducer节点从所述Reducer节点集合中删除,然后更新所述Reducer节点集合中剩余各Reducer节点的选择概率,进而进入下一轮Reducer节点选择,N为大于等于1的整数。0046在本发明中,第1次作业分配时所述Reducer节点集合中各Reducer节点的选择概率均为1/r,r为Reducer节点集合中Reducer节点的数量。0047在本发明中,初始的Reducer节。
35、点集合包含了Spark的所有Reducer节点。0048在本发明一个实施例中,本步骤具体可以根据默认Spark的默认分区算法来从Reducer节点集合中选择出一个Reducer节点。0049在本发明另一个实施例中,本步骤具体可以采用以下公式(1)来进行Reducer节点选择:0050p1(t)+p2(t)+.+pi(t)random(0,1)p1(t)+p2(t)+.+pi+1(t)(1)0051式中,pi(t)为第t次作业分配时,第i个Reducer节点的选择概率。0052步骤S103,根据第t次作业分配时所述目标Reducer节点在所述作业类型上的选择概率以及第t次作业分配时所述目标Red。
36、ucer节点在非所述作业类型上的选择概率,重新确定所述目标Reducer节点的选择概率,然后基于重新确定的所述目标Reducer节点的选择概率缩放所述Reducer节点集合中其他Reducer节点的选择概率,得到第t+1次作业分配时所述Reducer节点集合中各Reducer节点的选择概率。0053本发明在每次作业分配完成后,需要对各Reducer节点的选择概率进行更新,得到下一次作业分配时的所述Reducer节点集合中各Reducer节点的选择概率。0054由于本发明考虑了作业的类型,因此将每个节点的选择概率都分为CPU类型选择概率与I/O类型选择概率,一个节点的选择概率为该节点CPU类型选。
37、择概率和I/O类型选择概率之和。CPU类型选择概率和I/O类型选择概率初始值分别为1/2r,即在第1次作业分配时CPU类型选择概率和I/O类型选择概率初始值分别为1/2r。0055在本发明一个实施例中,在上述步骤S103之后本发明的应用于Spark的作业分配方法,还包括:0056在第t次作业分配时所述目标Reducer节点在所述作业类型上的选择概率以及第t次作业分配时所述目标Reducer节点在非所述作业类型上的选择概率的基础上,根据预设的奖惩更新模型进行选择概率更新,得到第t+1次作业分配时所述目标Reducer节点在所述作业类型上的选择概率以及第t+1次作业分配时所述目标Reducer节点。
38、在非所述作业类型上的选择概率。0057在本发明中,本发明在每次作业分配完成后,还利用增强学习的奖惩更新模型对目标节点的CPU类型选择概率和I/O类型选择概率进行更新,供下一次作业分配时使用。0058本发明对各Reducer节点的负载进行预测,节点的计算能力与节点每秒的作业处理时间成正比,本发明根据节点计算能力预测每个Reducer节点的负载量。0059本发明利用同样的一个数据块在不同Reducer节点上执行的时间,计算每个Reducer节点的计算能力RCRCcpu,RCio,为其分配当前作业类型对应的负载空间(Reduce Place,RP)。定义Reducer节点负载量及其自身负载类型比例规。
39、则如下:0060(1)定义总CPU负载量RPcpu和I/O负载量RPio各占总负载量的说明书5/13 页9CN 116048815 A90061(2)定义Reduce中CPU类型可用负载量和I/O类型可用负载量。0062假设当前作业类型是CPU类型,执行样本,假设样本被分为10个数据块,共有3个reducer,数据块的reducer执行编号以及耗时记录在CPU时间表中,如图7。当样本中所有数据块执行完毕,计算各Reducer节点的数据处理能力。0063定义Reducer节点的CPU计算能力如公式(2),根据各Reducer节点计算能力得到Reducer节点所分配CPU的负载量RPcpu,如公式。
40、(3)。00640065式中,RCcpu为当前集群的CPU计算能力,c1c3表示reduce1reduce3的节点计算能力,t1t1010个CPU样本任务在Reduce阶段分别花费的时间。00660067式中,是reduceh的CPU负载能力,RPTotal是当前各Reducer节点可分配的负载总量,ch表示reduceh的CPU计算能力。0068表示在Reducer节点1上,处理了编号为1、4、7的数据块,I/O类型Reducer节点负载定义同理,节点的I/O计算能力表示为ioh,I/O负载量表示为RCio,同样是输入I/O类型样本,然后根据图7中的作业分配,运用公式(4)和(5)计算red。
41、ucer的I/O计算能力。具体公式如下00690070式中,RCio为当前集群的I/O计算能力,io1io3表示reduce1reduce3的节点计算能力,t1t1010个I/O样本任务在Reduce阶段分别花费的时间。00710072式中,为reduceh的I/O负载能力,RITotal为当前I/O可分配的负载总量,ioh表示reduceh的I/O计算能力。0073如图2所示,在本发明一个实施例中,上述步骤S101的确定待分配作业的作业类型,具体包括步骤S201至步骤S203。0074步骤S201,从所述待分配作业中取出作业样本。0075步骤S202,将所述作业样本输入Spark中,利用Ma。
42、p阶段的输入输出量以及Shuffle阶段的输入输出量来计算所述作业样本对应的吞吐量。0076步骤S203,若所述作业样本对应的吞吐量小于磁盘平均吞吐量,则确定所述待分配作业的作业类型为CPU类型,若所述作业样本对应的吞吐量大于磁盘平均吞吐量,则确定所述待分配作业的作业类型I/O类型。0077本发明首先从待分配作业中取出1050M的作业样本(经实验得知性价比最高的作业输入量为50M),将样本输入Spark中,利用Map阶段的输入输出量以及Shuffle阶段的输说明书6/13 页10CN 116048815 A10入输出量来计算作业吞吐量,与Spark处理集群磁盘平均数据吞吐量进行对比,若该作业的。
43、吞吐量小于磁盘平均吞吐量,则判定为CPU类型的作业,若作业的吞吐量大于磁盘平均吞吐量,则判定为I/O类型的作业。0078在本发明一个实施例中,上述步骤S102中的计算该选择出的Reducer节点在所述作业类型上的负载阈值,具体包括:0079根据该选择出的Reducer节点在所述作业类型上的计算能力、所有Reducer节点在所述作业类型上的总计算能力、所有Reducer节点在所述作业类型上的当前总负载以及预设的负载溢出百分比,计算该选择出的Reducer节点在所述作业类型上的负载阈值。0080如何判定选出来的Reducer节点是否符合条件呢,本发明规定,根据当前状态求出选择出的Reducer节点。
44、在当前的作业类型type1对应的负载阈值,计算公式如(6)所示,其中threshold参数表示当前系统可以容忍的负载溢出百分比。选出来的Reducer节点符合条件如(2)所示。(2)表示若选出来的Reducer节点rej在作业类型type1上的当前负载大于等于pth(j),则代表选出来的Reducer节点rej不符合要求;若选出来的Reducer节点rej在作业类型type1上的当前负载小于pth(j),则代表当前选出来的Reducer节点rej满足阈值要求,可以确定为目标Reducer节点。00810082式(1)中,pth(j)为选出来的Reducer节点rej在作业类型type1上的负载。
45、阈值,threshold为负载溢出百分比,取值条件为0,1,为选择出的Reducer节点rej在作业类型type1上的计算能力,为所有Reducer节点在作业类型type1上的总计算能力,为所有Reducer节点在作业类型type1上的当前总负载。00830084式(7)中,为选出来的Reducer节点rej在作业类型type1上的当前负载。0085如图3所示,在本发明一个实施例中,上述步骤S103中的根据第t次作业分配时所述目标Reducer节点在所述作业类型上的选择概率以及第t次作业分配时所述目标Reducer节点在非所述作业类型上的选择概率,重新确定所述目标Reducer节点的选择概率,。
46、具体包括步骤S301至步骤S303。0086步骤S301,根据第t次作业分配时所述目标Reducer节点在所述作业类型上的选择概率、所述目标Reducer节点在所述作业类型上的负载量、所有Reducer节点在所述作业类型上的总负载量、所述目标Reducer节点在所述作业类型上的当前负载以及所有Reducer节点在所述作业类型上的当前总负载,计算出第一概率。0087步骤S302,根据第t次作业分配时所述目标Reducer节点在非所述作业类型上的选择概率、所述目标Reducer节点在非所述作业类型上的负载量、所有Reducer节点在非所述作业类型上的总负载量、所述目标Reducer节点在非所述作业。
47、类型上的当前负载以及所有Reducer节点在非所述作业类型上的当前总负载,计算出第二概率。0088步骤S303,对所述第一概率和所述第二概率进行加权求和,得到重新确定的所述说明书7/13 页11CN 116048815 A11目标Reducer节点的选择概率,其中,所述第一概率对应的权重值大于所述第二概率对应的权重值。0089具体的,type为当前作业类型,type2为非当前作业类型,因为本发明选择一个Reducer节点的初衷有三点,一是考虑当前节点选择器赋予的选择概率的同时,也要考虑当前节点的类型是否与作业类型匹配,第三点要考虑当前节点的负载量大小。为了不错失某些总负载量大,某种类型负载量较。
48、小的Reducer节点,概率值更新公式如(8),接下来运用公式(9)对Reducer节点h的动作选择概率作规范化。009000910092式中,type为当前作业类型,type2为非当前作业类型,为Reducer节点h在当前作业类型上的选择概率,为Reducer节点h在非当前作业类型上的选择概率,RPTotaltype为所有Reducer节点在当前作业类型上的总负载量,RPTotaltype2为所有Reducer节点在非当前作业类型上的总负载量,为Reducer节点h在当前作业类型上的当前负载,Ltype为所有Reducer节点在所述作业类型上的当前总负载,为Reducer节点h在非当前作业类。
49、型上的当前负载,Ltype2为所有Reducer节点在非当前作业类型上的当前总负载,m为Reducer节点集合中节点数量,ph为更新后的选择概率。0093在本发明一个实施例中,第一概率对应的权重值为0.8,第二概率对应的权重值为0.2。0094在本发明另一个实施例中,本发明的应用于Spark的作业分配方法,还包括:0095根据所述目标Reducer节点在所述作业类型上的计算能力以及所述目标Reducer节点在非所述作业类型上的计算能力,计算所述目标Reducer节点在所述作业类型上的计算能力比例以及所述目标Reducer节点在非所述作业类型上的计算能力比例。0096本发明利用以下公式计算所述目。
50、标Reducer节点在所述作业类型上的计算能力比例以及所述目标Reducer节点在非所述作业类型上的计算能力比例:009700980099Acpu+AIO1 (12)0100式中,AIO和Acpu为目标Reducer节点的I/O计算能力比例和CPU计算能力比例,cj为目标Reducer节点的CPU计算能力,ioj为目标Reducer节点的的I/O计算能力。0101如图4所示,在本发明另一个实施例中,上述步骤S103中的根据第t次作业分配时所述目标Reducer节点在所述作业类型上的选择概率以及第t次作业分配时所述目标Reducer节点在非所述作业类型上的选择概率,重新确定所述目标Reducer。
- 内容关键字: 应用于 Spark 作业 分配 方法 装置
相关文档
更多



















链接地址:https://www.zhuanlichaxun.net/pdf/14203079.html