CN111490795B - 一种面向中间值长度异构的编码MapReduce方法 - Google Patents
一种面向中间值长度异构的编码MapReduce方法 Download PDFInfo
- Publication number
- CN111490795B CN111490795B CN202010446348.9A CN202010446348A CN111490795B CN 111490795 B CN111490795 B CN 111490795B CN 202010446348 A CN202010446348 A CN 202010446348A CN 111490795 B CN111490795 B CN 111490795B
- Authority
- CN
- China
- Prior art keywords
- value
- node
- working node
- intermediate value
- working
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3057—Distributed Source coding, e.g. Wyner-Ziv, Slepian Wolf
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3084—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
- H03M7/3091—Data deduplication
- H03M7/3095—Data deduplication using variable length segments
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了一种面向中间值长度异构的编码MapReduce方法。所述方法基于不同Reduce函数间所需中间值的字节长度非全等但相同Reduce函数下所需的中间值字节长度相等的场景,通过对输入文件集进行冗余存储放置与Reduce函数的适当分配,并对中间值采用编码与多播相结合的方式,极大地压缩Shuffle阶段的数据传输量,避免不必要的通信开销,从而缩短整个MapReduce任务的执行时间。
Description
技术领域
本发明涉及分布式系统领域,具体涉及一种面向中间值长度异构的编码MapReduce方法。
背景技术
MapReduce最早是由谷歌提出用于大规模数据并行处理的,它将大规模数据处理作业分割成多个独立运行的Map任务,并运行以生成一定数量的中间值,这些中间值随后在Shuffle阶段混洗,并被Reduce任务合并生成最终的输出文件。然而,Shuffle阶段时需要在Map任务和Reduce任务之间传输大量中间值,导致通信负载过重,从而延缓整个MapReduce作业的执行时间。例如,在Facebook Hadoop集群中,Shuffle阶段可占总作业执行时间的33%;当在Amazon EC2集群运行自连接应用程序时,Shuffle阶段占时比可高达70%。而且,随着集群规模的增大,Shuffle阶段所造成的通信瓶颈也越来越严重。因此,降低Shuffle阶段的通信开销对降低总作业的时延有重要意义。
为了克服Shuffle阶段的通信瓶颈问题,很多应用场景都采用了编码技术。针对通信瓶颈问题,可以利用计算节点上富余的存储或计算能力,通过存储冗余数据或进行冗余计算,使得计算节点拥有其他节点的部分数据,然后将自身数据与冗余数据进行编码,并将编码后的数据多播给其他节点,而其他节点在收到编码数据后结合本地的数据即可解码出所需要的数据。其中,编码与解码方案大多采用异或位操作。通过这种方式,能够以较小的额外存储或计算代价换取通信负载的大幅度减少,从而在一定程度上解决通信瓶颈问题。
一般针对Shuffle阶段通信瓶颈问题的编码技术主要集中在中间值字节的长度相等的情况,此时通过异或操作编码时就不会浪费比特。但仍有许多中间值的字节长度不同的情况,如复杂的查询系统、倒排索引、图算法等。此时如果使用异或操作来编码与解码,将不可避免地产生比特的浪费,导致通信开销的浪费。因此,对MapReduce架构而言,优化中间值字节长度非全等情况下Shuffle阶段的性能是很有必要的。
发明内容
本发明的目的是,基于不同Map计算间中间值字节长度非全等但相同Map计算下所有中间值字节长度相等的场景下,提出一种提高MapReduce任务Shuffle性能的优化方法,能够通过编码方式压缩Shuffle阶段的数据传输量,避免不必要的通信开销,从而缩短整个MapReduce任务的执行时间。
为了达到上述发明目的,本发明采用以下技术方案:
第一方面,提供一种面向中间值长度异构的编码MapReduce方法,包括以下步骤:
收集各个Reduce函数所需中间值的字节长度值;
依据Reduce函数间所需中间值的字节长度不同,指定各个工作节点负责特定Reduce函数的结果输出;
确定存储冗余度,所述存储冗余度用于表征一个输入文件将被放置在多少个不同的工作节点上;
根据输入文件集与存储冗余度,将输入文件集放置在各个工作节点上;
工作节点对中间值编码并多播编码值,压缩Shuffle数据传输量;
工作节点根据接收到的编码值与本地已有的中间值,解码还原出需要的中间值。
进一步地,所述收集各个Reduce函数所需中间值的字节长度值包括:
模拟MapReduce作业,Map节点计算函数不变,Reduce节点的输出更改为各个Map计算函数的中间值的字节长度值;
以预设数据量文件作为输入,提交MapReduce作业以伪分布式的方式模拟运行;
依据模拟运行的结果,收集到各个Map计算函数的中间值的字节长度值,即为每个Reduce函数所需中间值的字节长度值。
进一步地,所述指定各个工作节点负责特定Reduce函数的结果输出包括:
将各个Reduce函数所需的Map中间值字节长度按从大到小排序,得到对应Reduce函数排序顺序,其中Reduce函数个数不小于工作节点数;
每个工作节点上中间值字节长度的和值初始化为零,将Reduce函数按排序顺序依次分配给工作节点;
遍历每个工作节点上已分配到的函数中间值字节长度的和,将Reduce函数分配到和值最小的那个工作节点上;
重复执行上述遍历分配操作,直到所有Reduce函数分配结束。
进一步地,所述确定存储冗余度包括:
以预设数据量文件作为输入,提交MapReduce作业以伪分布式的方式模拟运行;
通过监控程序获取Map节点CPU计算时间Tmap与Shuffle阶段的传输时间Tshuffle;
进一步地,所述根据输入文件集与存储冗余度,将输入文件集放置在各个工作节点上包括:
排列组合出所有基数为冗余度的工作节点子集结果,其中冗余度为一个正整数,其范围不大于工作节点数;
将输入文件集平均分配给所有工作节点子集,每个输入文件的大小是固定的;
每个工作节点聚集分配到它所在工作节点子集上的所有输入文件。
进一步地,所述工作节点对中间值编码并多播编码值包括:
排列组合出所有基数为(r+1)的工作节点子集结果,其中r为存储冗余度,然后重复执行以下步骤,直到遍历完所有基数为(r+1)的工作节点子集:
针对任意一个工作节点子集,将子集中任意一个节点本地所缺但子集中其它节点本地已有的中间值集合均分给子集中其它节点负责传输;
工作节点子集中的每个工作节点将负责传输r个中间值子集,将这r个中间值子集间进行异或操作;
工作节点子集中的每个工作节点将异或编码值多播传输给子集中的其它工作节点。
进一步地,所述工作节点根据接收到的编码值与本地已有的中间值,解码还原出需要的中间值包括:
排列组合出所有基数为(r+1)的工作节点子集结果,其中r为存储冗余度,然后重复执行以下步骤,直到遍历完所有基数为(r+1)的工作节点子集:
针对任意一个工作节点子集,子集中任意一个节点将接收到的编码值异或其本地已有的中间值,还原出该工作节点所缺的中间值。
第二方面,提供一种数据处理装置,所述装置包括一个或多个处理器,存储器,以及一个或多个程序,其中所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述程序被处理器执行时实现如本发明第一方面所述的面向中间值长度异构的编码MapReduce方法。
第三方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令被处理器执行时实现如本发明第一方面所述的面向中间值长度异构的编码MapReduce方法。
本发明的工作原理如下:异或操作将多个数值间相同比特位上的数执行模二加运算,使得多个数值的总字节长度变为字节数最长的数值的长度,实现多值变单值,从而能有效压缩数据传输量。若有n个数值间进行异或操作得到异或值,当获悉其中任意(n-1)个数的具体值时,将异或值与(n-1)个数的具体值间再次进行异或操作,便能得到最后一个数的具体值,因此易于恢复原始数据。虽然此时恢复得到的数据具有正确的值,但字节长度仍为n个数值间字节数最长的数值的长度,为实现对数据的精确恢复,则需要记录每个参与异或操作的数的字节长度。
MapReduce作业执行过程中,Map节点在完成计算之后会针对每个Map函数产生多个中间值,由于相同Map计算下所有中间值的字节长度相等,而只要获悉多个中间值中的一个值的字节长度即可得到对应Map函数下所有中间值的字节长度。在Hadoop伪分布式MapReduce集群中,提交一个MapReduce作业,Map计算函数不变,将原Reduce函数的输出更改为对应Map计算函数的一个中间值的字节长度。因为Reduce节点的输出结果每个Map函数下的中间值的字节长度,且只要Map计算函数不变,对于任意的输入文件Reduce节点的输出结果是固定的。因此,模拟运行MapReduce作业时不需要输入完整的数据集,只提供小数据量的输入即可,如1Mb大小的输入文件。此外,由于输入数据量小且重复运行输出结果无差异,伪分布式MapReduce集群的Reduce节点数可设置为1,Map节点数与输入文件块数有关,不需要设置。依据模拟运行的结果,收集到各个Map计算函数的中间值的字节长度值,即为对应Reduce函数所需中间值的字节长度值。
Reduce函数的分配根据其所需的中间值字节长度确定。每个Reduce函数都有其需要的中间值集,相同Reduce函数下所需中间值的字节长度相等,不同Reduce函数下所需中间值的字节长度非全等。首先,每个工作节点上中间值字节长度的和值初始化为零;之后,将Reduce函数按对应的中间值字节长度从大到小的顺序排序;最后,按中间值字节长度从大到小依次分配每个Reduce函数,其中Reduce函数分配给其上已分配到的函数中间值字节长度的和值最小的工作节点。由于最初所有工作节点上中间值字节长度的和值都初始化为零,故第一个Reduce函数可以分配给任意一个工作节点上执行。此外,若在某个Reduce分配过程中存在多个工作节点上已分配到的函数中间值字节长度的和值均为最小值,则在该多个工作节点中任意选择一个节点负责该Reduce函数即可。这与随机分配Reduce函数相比,保证了各工作节点间所需的从Shuffle传来的中间值数据量尽可能相等,从而使用异或操作编码时减少比特的浪费。
输入文件集的放置采用了冗余存储的思想,每个输入文件都放置在相同数目的多个工作节点上,且每个工作节点都要存储相同数目的输入文件。与之前每个输入文件只放置在一个工作节点的放置方案相比,这有两点好处:1)它增加了工作节点Map计算后自身已有的中间值量,从而从实质上减少了Shuffle阶段的数据传输量;2)保证了相同硬件配置下工作节点间完成Map计算的时间仅有细微差别,从而减少等待Map阶段结束造成的时间浪费。若将每个输入文件都放置在r个不同的工作节点上,那么存储冗余度则为r。当r=1时,每个输入文件只放置在一个工作节点上,此时就是一般的存储方法,没有用到冗余存储的思想。
当对MapReduce作业执行的性能提升没有严格要求时,存储冗余度设置为2即可。此外,还可通过在伪分布式集群模拟运行的方式收集参数,从而估算出较优的存储冗余度值。以小数据量的文件作为输入,提交MapReduce作业以伪分布式的方式模拟运行,通过Ganglia监控系统或自定义程序监控Map节点CPU计算时间Tmap与Shuffle阶段的传输时间Tshuffle。通常来说,由于模拟运行的数据量很小,只是完整输入数据集的一个非常小的子集,因此一次模拟运行所需要的时间很短,通常在5分钟以内完成整个模拟运行和性能参数收集的工作。最后,估算存储冗余度r,使得最小,其中r是一个不大于工作节点数的正整数,从而获得一个较优的存储冗余度值。
输入文件集的放置主要与三个参数有关,分别是工作节点数K、输入文件数N、存储冗余度r,其中当输入文件数不是工作节点数K与冗余度r两者排列组合数的倍数时,有两种方法可供选择:1)添加空文件使得总输入文件数满足组合数的倍数,以原输入文件集与空文件集作为新的输入文件集;2)将每个输入文件划分成个相等大小的子文件,则总子文件数满足组合数的倍数,从而以子文件集作为新的输入文件集。第一种方法适用于空文件数较少的情形,当每个输入文件较大的时候可采用第二种方法。从K个工作节点中任取r个节点,可得到个节点子集,之后将输入文件集也分成份,每个节点子集都对应一个输入文件子集,节点子集中的每个节点都存储输入文件子集中的全部文件,从而实现输入文件集的放置。
每个Map节点都对存储在自身上的输入文件进行Map函数的计算,当Map计算完成之后,若不采取任何措施,将执行Shuffle过程,此时Map节点向Reduce节点传输中间值,但此过程由于通信量巨大极易产生通信瓶颈。因此,本发明在Map计算完成之后与Shuffle传输之前,对工作节点本地拥有的但其它工作节点所缺的中间值间用异或操作进行编码并用多播方式传输出去,从而压缩Shuffle数据传输量,降低Shuffle阶段的通信开销。对任一个包含(r+1)个节点的工作节点子集,其中任r个节点间都有相同的输入文件,而第(r+1)个节点刚好缺少该输入文件Map计算后的中间值;将第(r+1)个节点所缺的该输入文件对应的中间值集平均分成r份,每份中间值子集交给其它r个节点中的一个节点传输;而对(r+1)个节点子集的每个节点会有r个第(r+1)个节点,即每个节点有r个中间值子集需要传输,此时将这r个中间值子集间进行异或操作得到编码值,最后在Shuffle阶段将编码值多播给其它r个节点。需要注意的是,对所有包含(r+1)个节点的工作节点子集都要进行上述的编码与多播过程。
Reduce节点在接收到某个异或编码值后,由于异或编码值由包含r个中间值子集进行异或构成,而其中(r-1)个中间值子集本地是已有的,将编码值与本地已有的中间值进行异或即可解码出Reduce任务所缺的中间值子集,接着当解码出所有所缺的中间值子集后对相关的中间值子集间进行合并即可恢复出Reduce节点所缺的原始中间值数据集,最后执行Reduce函数就能得到MapReduce作业的输出结果。
本发明基于不同Reduce函数间所需中间值的字节长度非全等但相同Reduce函数下所需的中间值字节长度相等的场景,通过对输入文件集进行冗余存储放置与Reduce函数的适当分配,并对中间值采用编码与多播相结合的方式,极大地压缩Shuffle阶段的数据传输量,避免不必要的通信开销,从而缩短整个MapReduce任务的执行时间。
附图说明
图1是根据本发明的编码MapReduce方法总体流程图;
图2是Map中间值字节长度收集过程图;
图3是Reduce函数的分配示意图;
图4是存储冗余度估算过程图;
图5是输入文件集的放置示意图;
图6是Map计算完成后中间值示意图;
图7是Shuffle过程编码值传输示意图;
图8是Reduce节点解码示意图。
具体实施方式
下面结合附图和具体实施例对本发明的技术方案作进一步说明。
在进行Map计算之前,MapReduce会将输入文件集进行分配,每个输入文件的大小是固定的,Map节点上的Map任务计算分配到的输入文件子集;在完成Map计算之后,在Shuffle阶段需要进行对中间值进行编码传输,压缩数据传输量;此外,Reduce节点上会有多个Reduce任务,每个Reduce任务负责合并处理分配到该Reduce节点上的一个函数的输出。而在MapReduce中,必须等所有Map节点上的任务计算完成后Reduce节点才能获取数据并执行任务,因此每个工作节点即可同时充当Map节点与Reduce节点。由于Map节点只对分配在自身节点上的输入文件子集进行Map计算,Reduce节点只负责对分配在自身节点上的多个Reduce函数输出结果,而编码过程涉及到自身Map计算完成后的中间值,解码过程必须还原出自身负责的Reduce函数所需要的中间值,因此,除了编码策略的设计,还需要考虑Reduce函数的分配与输入文件集的放置。
如图1所示,本发明提出的一种面向中间值长度异构的编码MapReduce方法,包括以下步骤:
步骤S1,收集各个Reduce函数所需中间值的字节长度值;
步骤S2,依据Reduce函数间所需中间值的字节长度不同,指定各个工作节点负责特定Reduce函数的结果输出;
步骤S3,确定存储冗余度,即确定一个输入文件将被放置在多少个不同的工作节点上;
步骤S4,根据输入文件集与存储冗余度,将输入文件集放置在各个工作节点上;
步骤S5,工作节点对中间值编码并多播编码值,压缩Shuffle数据传输量;
步骤S6,工作节点根据接收到的编码值与本地已有的中间值,解码还原出需要的中间值。
图2为Map中间值字节长度收集过程图。经过如图2所示的过程后,从Reduce节点的输出即可获得每个Map函数计算后中间值的字节长度。假设有6个Reduce函数,收集到的Map中间值的字节长度值对应为{1,1,1,4,5,6},那么Reduce函数的分配如图3所示。先将6个Reduce函数所需的Map中间值字节长度按从大到小排序,之后将这6个Reduce函数依次分配给3个工作节点,每个Reduce函数分配给其上已分配到的函数中间值字节长度的和值最小的工作节点。由于最初每个工作节点上中间值字节长度和值初始化为0,因此所需中间值字节长度为6的Reduce函数可分配工作节点1,所需中间值字节长度为5的Reduce函数分配工作节点2,所需中间值字节长度为4的Reduce函数分配工作节点3;此时工作节点3上中间值字节长度和值最小,因此下一个所需中间值字节长度为1的Reduce函数就分配给工作节点3负责;同理,对剩下两个所需中间值字节长度为1的Reduce函数分别分配给工作节点2与工作节点3,最后的Reduce函数分配结果如图3所示。
图4为存储冗余度的估算过程图,经过如图4所示的过程,从监控程序收集参数后即可估算存储冗余度的较优值。图5为存储冗余度设置为2时的输入文件集的放置示意图。如图所示,有3个工作节点,6个输入文件,每个输入文件都放置在2个工作节点上,因此对工作节点有种排列组合,工作节点子集为{节点1,节点2}、{节点1,节点3}、{节点2,节点3};将6个输入文件平均划分3份,分别为{文件1,文件2}、{文件3,文件4}、{文件5,文件6};每一个工作节点子集对应一个输入文件子集,之后合并分配到每个节点上的输入文件即可得到输入文件集的分配方案。
其中需要注意的是,输入文件数必须是排列组合数的倍数,这样才能对输入文件进行平均分配。针对输入文件数不是排列组合数倍数的情形,可将输入文件按固定大小分块成排列组合数的倍数或者添加空文件,从而将输入文件分块继续沿用此冗余存储的放置策略。
针对Shuffle过程多播传输的异或编码值,其编码方案就是将对工作节点本地已有但其它工作节点所缺的中间值间用异或操作进行编码。首先,根据输入文件集的放置可获知每个输入文件放置在r个工作节点上,此时定义存储冗余度为r。之后,针对任意一个具有(r+1)个工作节点的集合,将集合中任意一个节点本地所缺但集合中其它节点本地已有的中间值集均分给工作节点集合中其它节点负责传输。最后,集合中的每个工作节点将负责传输r个中间值子集,故工作节点将这r个中间值子集间进行异或编码并将编码值多播传输给集合中的每个工作节点。其中,需要对所有具有(r+1)个工作节点的集合执行上述过程。
如图7所示是基于图3与图5场景设置下的Shuffle过程编码值传输示意图,而图6为Map计算完成后各工作节点已有的中间值示意图。在存储冗余度为2的情况下,工作节点1缺少输入文件5与输入文件6关于字节长度为6的Map中间值,将这两个中间值均分给工作节点2与工作节点3传送给工作节点1,故工作节点2负责输入文件5关于字节长度为6的中间值,而工作节点3负责输入文件6关于字节长度为6的中间值;同理,对工作节点2与工作节点3所缺的中间值也同样均分给另外两个节点传送。这样,每个工作节点将负责传送另外两个工作节点所缺的中间值数据,如果工作节点单播传送这两个中间值数据,并不能降低通信开销,此时需要将这两个中间值数据进行异或并多播传输给其它两个工作节点。异或操作使原本需要传输两个中间值数据的数据量降低为只需传输字节长度最大的中间值数据的数据量,同时多播由于工作节点不用向其它每个工作节点单独发送数据,所以流量负载极低。
工作节点在接收到异或编码值后,将编码值与本地已有的中间值进行异或即可还原出Reduce任务所缺的中间值,接着执行Reduce任务就能得到函数的输出结果。图8所示为工作节点的解码示意图。如图所示,工作节点1接收来自工作节点2多播的异或编码值,工作节点1缺少输入文件5关于字节长度为6的Map中间值,但是工作节点1具有关于输入文件2的三个Map中间值,而这三个Map中间值正是工作节点1接收的来自工作节点2多播的异或编码值的另外一部分,将该异或编码值与这三个Map中间值间相异或,即可解码得到工作节点1所缺的输入文件5关于字节长度为6的中间值;工作节点1再将接收到来自工作节点3多播的编码值与Map计算完成后已有的本地编码值相异或,即可解码得到工作节点1所缺的输入文件6关于字节长度为6的中间值,最终还原出工作节点1所缺的两个中间值。工作节点2与工作节点3也进行同样的处理,解码还原出所缺的中间值,从而可进行接下来的Reduce任务。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,本发明中的控制节点与边缘计算节点的交互方式,收集反馈信息内容与在线调度方法在各系统中均适用,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。
Claims (9)
1.一种面向中间值长度异构的编码MapReduce方法,其特征在于,所述方法包括以下步骤:
收集各个Reduce函数所需中间值的字节长度值;
依据Reduce函数间所需中间值的字节长度不同,指定各个工作节点负责特定Reduce函数的结果输出;
确定存储冗余度,所述存储冗余度用于表征一个输入文件将被放置在多少个不同的工作节点上;
根据输入文件集与存储冗余度,将输入文件集放置在各个工作节点上;
工作节点对中间值编码并多播编码值,压缩Shuffle数据传输量;
工作节点根据接收到的编码值与本地已有的中间值,解码还原出需要的中间值。
2.根据权利要求1所述的一种面向中间值长度异构的编码MapReduce方法,其特征在于,所述收集各个Reduce函数所需中间值的字节长度值包括:
模拟MapReduce作业,Map节点计算函数不变,Reduce节点的输出更改为各个Map计算函数的中间值的字节长度值;
以预设数据量文件作为输入,提交MapReduce作业以伪分布式的方式模拟运行;
依据模拟运行的结果,收集到各个Map计算函数的中间值的字节长度值,即为每个Reduce函数所需中间值的字节长度值。
3.根据权利要求2所述的一种面向中间值长度异构的编码MapReduce方法,其特征在于,所述指定各个工作节点负责特定Reduce函数的结果输出包括:
将各个Reduce函数所需的Map中间值字节长度按从大到小排序,得到对应Reduce函数排序顺序,其中Reduce函数个数不小于工作节点数;
每个工作节点上中间值字节长度的和值初始化为零,将Reduce函数按排序顺序依次分配给工作节点;
遍历每个工作节点上已分配到的函数中间值字节长度的和,将Reduce函数分配到和值最小的那个工作节点上;
重复执行上述遍历分配操作,直到所有Reduce函数分配结束。
5.根据权利要求1所述的一种面向中间值长度异构的编码MapReduce方法,其特征在于,所述根据输入文件集与存储冗余度,将输入文件集放置在各个工作节点上包括:
排列组合出所有基数为冗余度的工作节点子集结果,其中冗余度为一个正整数,其范围不大于工作节点数;
将输入文件集平均分配给所有工作节点子集,每个输入文件的大小是固定的;
每个工作节点聚集分配到它所在工作节点子集上的所有输入文件。
6.根据权利要求1所述的一种面向中间值长度异构的编码MapReduce方法,其特征在于,所述工作节点对中间值编码并多播编码值包括:
排列组合出所有基数为(r+1)的工作节点子集结果,其中r为存储冗余度,然后重复执行以下步骤,直到遍历完所有基数为(r+1)的工作节点子集:
针对任意一个工作节点子集,将子集中任意一个节点本地所缺但子集中其它节点本地已有的中间值集合均分给子集中其它节点负责传输;
工作节点子集中的每个工作节点将负责传输r个中间值子集,将这r个中间值子集间进行异或操作;
工作节点子集中的每个工作节点将异或编码值多播传输给子集中的其它工作节点。
7.根据权利要求6所述的一种面向中间值长度异构的编码MapReduce方法,其特征在于,所述工作节点根据接收到的编码值与本地已有的中间值,解码还原出需要的中间值包括:
排列组合出所有基数为(r+1)的工作节点子集结果,其中r为存储冗余度,然后重复执行以下步骤,直到遍历完所有基数为(r+1)的工作节点子集:
针对任意一个工作节点子集,子集中任意一个节点将接收到的编码值异或其本地已有的中间值,还原出该工作节点所缺的中间值。
8.一种数据处理装置,其特征在于,所述装置包括:
一个或多个处理器;
存储器;
以及一个或多个程序,其中所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述程序被处理器执行时实现如权利要求1-7中的任一项所述的面向中间值长度异构的编码MapReduce方法。
9.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令被处理器执行时实现如权利要求1-7中任一项所述的面向中间值长度异构的编码MapReduce方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010446348.9A CN111490795B (zh) | 2020-05-25 | 2020-05-25 | 一种面向中间值长度异构的编码MapReduce方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010446348.9A CN111490795B (zh) | 2020-05-25 | 2020-05-25 | 一种面向中间值长度异构的编码MapReduce方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111490795A CN111490795A (zh) | 2020-08-04 |
CN111490795B true CN111490795B (zh) | 2021-09-24 |
Family
ID=71813361
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010446348.9A Active CN111490795B (zh) | 2020-05-25 | 2020-05-25 | 一种面向中间值长度异构的编码MapReduce方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111490795B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112769522B (zh) * | 2021-01-20 | 2022-04-19 | 广西师范大学 | 一种基于Partition结构的编码分布式计算方法 |
CN113434299B (zh) * | 2021-07-05 | 2024-02-06 | 广西师范大学 | 基于MapReduce框架的编码分布式计算方法 |
CN114844781B (zh) * | 2022-05-20 | 2023-05-09 | 南京大学 | Rack架构下面向编码MapReduce的Shuffle性能优化方法及系统 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7295137B2 (en) * | 2005-03-01 | 2007-11-13 | The Texas A&M University System | Data encoding and decoding using Slepian-Wolf coded nested quantization to achieve Wyner-Ziv coding |
CN102915365A (zh) * | 2012-10-24 | 2013-02-06 | 苏州两江科技有限公司 | 基于Hadoop的分布式搜索引擎构建方法 |
CN103078941B (zh) * | 2012-12-31 | 2016-01-20 | 中金数据系统有限公司 | 一种分布式计算系统的任务调度方法 |
CA2942948A1 (en) * | 2015-09-21 | 2017-03-21 | Capital One Services, Llc | Systems for parallel processing of datasets with dynamic skew compensation |
CN105430078B (zh) * | 2015-11-17 | 2019-03-15 | 浪潮(北京)电子信息产业有限公司 | 一种海量数据的分布式存储方法 |
CN105357124B (zh) * | 2015-11-22 | 2018-08-17 | 华中科技大学 | 一种MapReduce带宽优化方法 |
US10608749B1 (en) * | 2018-01-24 | 2020-03-31 | Inphi Corporation | Probabilistic shaping techniques for high performance coherent optical transceivers |
CN111045843B (zh) * | 2019-11-01 | 2021-09-28 | 河海大学 | 具有容错能力的分布式数据处理方法 |
-
2020
- 2020-05-25 CN CN202010446348.9A patent/CN111490795B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111490795A (zh) | 2020-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111490795B (zh) | 一种面向中间值长度异构的编码MapReduce方法 | |
Li et al. | Coding for distributed fog computing | |
Li et al. | Coded mapreduce | |
CN110750382B (zh) | 用于提高数据修复性能的最小存储再生码编码方法及系统 | |
Li et al. | Coded distributed computing: Straggling servers and multistage dataflows | |
CN103838860A (zh) | 一种基于动态副本策略的文件存储系统及其存储方法 | |
Li et al. | Compressed coded distributed computing | |
CN106156159A (zh) | 一种表连接处理方法、装置和云计算系统 | |
CN109784663B (zh) | 一种工作流调度方法与装置 | |
CN113687975B (zh) | 数据处理方法、装置、设备及存储介质 | |
CN114153651A (zh) | 一种数据编码方法、装置、设备及介质 | |
CN115981562A (zh) | 一种数据处理方法及装置 | |
CN113505021B (zh) | 基于多主节点主从分布式架构的容错方法及系统 | |
CN108304264B (zh) | 一种基于spark流式计算的纠删码归档方法 | |
US10187084B2 (en) | Method of encoding data and data storage system | |
CN104580017A (zh) | 基于rss的网络会话分发方法及系统 | |
CN112612601A (zh) | 分布式图像识别的智能模型训练方法及系统 | |
CN104572987B (zh) | 一种通过压缩提高简易再生码存储效率的方法和系统 | |
CN114844781B (zh) | Rack架构下面向编码MapReduce的Shuffle性能优化方法及系统 | |
CN108897497B (zh) | 一种无中心的数据管理方法及装置 | |
CN113342526B (zh) | 云计算移动网络资源动态管控方法、系统、终端及介质 | |
CN104933110A (zh) | 一种基于MapReduce的数据预取方法 | |
CN116633485A (zh) | 一种面向编码MapReduce框架的传输纠错方法及系统 | |
CN113986853A (zh) | 一种区块链数据存储与共享方法、系统、设备及终端 | |
CN113434299B (zh) | 基于MapReduce框架的编码分布式计算方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |