基于MapReduce的多路连接优化方法研究
基于MapReduce的多元连接优化方法
基于MapReduce的多元连接优化方法李甜甜;于戈;郭朝鹏;宋杰【摘要】多元连接是数据分析最常用的操作之一,MapReduce是广泛用于大规模数据分析处理的编程模型,它给多元连接优化带来新的挑战:传统的优化方法不能简单地适用到MapReduce中;MapReduce连接执行算法尚存优化空间.针对前者,考虑到I/O代价是连接运算的主要代价,首先以降低I/O代价为目标提出一种启发式算法确定多元连接执行顺序,并在此基础上进一步优化,最后针对MapReduce设计一种并行执行策略提高多元连接的整体性能.针对后者,考虑到负载均衡能够有效减少MapReduce的“木桶效应”,通过任务公平分配算法提高连接内部的并行度,并在此基础上给出Reduce任务个数的确定方法.最后,通过实验验证本文提出的执行计划确定方法以及负载均衡算法的优化效果.该研究对大数据环境下MapReduce 多元连接的应用具有指导意义,可以优化如OLAP分析中的星型连接、社交网络中社团发现的链式连接等应用的性能.【期刊名称】《计算机研究与发展》【年(卷),期】2016(053)002【总页数】12页(P467-478)【关键词】多元连接;执行计划;I/O代价;性能优化;MapReduce编程模型;负载均衡【作者】李甜甜;于戈;郭朝鹏;宋杰【作者单位】东北大学计算机科学与工程学院沈阳 110819;东北大学计算机科学与工程学院沈阳 110819;东北大学软件学院沈阳 110819;东北大学软件学院沈阳110819【正文语种】中文【中图分类】TP393连接运算根据连接条件把2个或多个关系中的记录组合为一个结果数据集,包含连接运算的查询简称为连接查询.连接查询在数据分析中很常见,TPC-H提供的22个查询用例中有16个涉及到此类查询[1].当一个连接查询涉及n个关系时,称为n元连接;当n>2时,称为多元连接,多元连接是数据分析中最常用的操作之一.此外,在当今的大数据环境下,MapReduce[2]编程模型被广泛用于大规模数据集的分析处理.目前,MapReduce中数据分析的优化工作包括索引、数据布局、查询优化、迭代处理、公平负载分配以及交互式处理等方面[3].基于此,我们分析MapReduce给多元连接的优化带来的新挑战.首先,多元连接查询依赖良好的执行计划.传统的执行计划确定方法[4]不满足MapReduce特性,无法通过简单的适应性更改应用到现有的优化中.另外,现有基于MapReduce的执行计划确定方法[5-6]复杂度较高,应用范围受限.因此,亟需提出一种新的满足MapReduce特性且复杂度较低的执行计划确定方法.此外,我们还注意到,无论是传统研究还是现有研究,其执行计划都只确定了连接的执行顺序,并未考虑无依赖关系的连接操作间的并行执行策略.其次,良好的执行计划固然重要,对执行框架的优化同样可以有效地提高多元连接的性能,这一点在分布式环境中尤为重要.一种公平的并行任务负载分配方法可以有效地减少MapReduce中的“木桶效应”,从而提高连接操作内部的并行度.然而,就我们所知,目前没有针对连接运算的MapReduce负载均衡方法,且现有的通用方法[7-9]仅考虑了任务的输入代价,不适用于连接运算,因为它的输出代价也不可忽略.本文研究MapReduce环境下多元连接的优化方法,基于上述分析提出以下问题:1)多元连接执行计划的解空间很大,短时间内很难找到最优解,那么能否通过某个复杂度较小的算法快速找到一个近似最优解;2)连接运算属于I?O密集型运算,I?O为主要代价,那么能否针对MapReduce特性提出I?O代价模型,并选择代价最小的执行计划;3)连接顺序确定后,不存在依赖关系的连接操作可以并行执行,那么当存在多个满足并行执行的连接操作时该如何选择;4)执行框架的优化中,负载均衡能够有效地减少“短板效应”,那么此处的连接负载又该如何定义.这些问题的求解存在一定程度的挑战,就我们目前所知,尚未发现能够完全解决上述问题的研究工作.本文首先通过分析多元连接执行计划解空间的缩减方法、MapReduce连接算法的I?O代价模型、Replicated Join①的优劣以及MapReduce作业的并行执行特性,最终确定了执行计划的优化方法;接着,结合MapReduce框架分析连接运算的特性,提出负载均衡模型及其对应的均衡算法,并在此基础上提出Reduce任务个数的确定方法.大量实验验证了本文提出的优化方法的有效性.现有多元连接的优化研究可归为以下3类:执行计划的优化、连接算法的优化和执行框架的优化.对于第1类研究,文献[4]将n元连接拆分为n-1个2元连接,每个2元连接对应一个MapReduce作业(后文如不特殊指明,作业均为MapReduce作业),然而该方法针对的是传统的多处理器计算环境,不适用于MapReduce,且该方法在n较大时会导致较高的作业初始化代价以及中间结果的存储代价.文献[10]针对链式连接提出使用平衡二叉树的方式来执行多元连接,但其并未给出平衡二叉树的构建规则.文献[11]在一个作业中完成所有的连接运算,然而该方法在n较大时会因为数据需要传输①Replicated Join:在一个MRJ中执行多个连接操作.此时,同一个Key-Value对需要被复制到多个Reducer上,因此称为Replicated Join.该算法牺牲部分网络I?O代价来换取MRJ的初始化以及HDFS读写代价.到多个Reducer而导致较高的网络I?O代价.文献[5-6]将n元连接划分为若干个组,每组涉及若干个关系并由一个作业完成,而后采用Replicated Join连接所有组生成的中间结果,然而该方法因为要穷举所有可能的m(m<n)元连接作为候选集而导致算法复杂度较高,从而使其应用范围较窄.此外,上述所有研究确定的执行计划都只确定了连接的执行顺序,并未考虑无依赖关系的连接操作间的并行执行策略.本文首先基于MapReduce特性提出多元连接顺序的确定方法,该方法复杂度较低且能够很好地均衡中间结果的存储代价与网络传输代价.确定连接顺序后,本文还给出一种算法来确定无依赖关系的连接操作间的并行执行顺序,该算法通过对节点资源的充分利用来提高多元连接的执行效率.对于第2类研究,文献[12]针对theta-join提出一种随机算法1-Bucket-Theta以及它的一个扩展算法M-Bucket;文献[13]对文献[12]中提出的算法进行下界分析,并通过聚类方法提高了M-Bucket算法的效率.文献[14-15]总结现有实现算法为Map Join,Reduce Join,Semi Join等,这些算法分别适用于不同的查询场景,如Map Join仅适用于数据量较小的关系能够装入内存的查询.MapReduce连接算法的优化研究相对比较成熟,不在本文的研究范围之内.因此,不失一般性,本文采用没有任何约束条件的通用的Reduce Join作为研究对象.连接运算的执行效率依赖于实现算法和运行环境,由此衍生出第3类研究.文献[16]基于MapReduce提出一个改进的执行框架Map-Reduce-Merge,新添加的Merge阶段为Reduce Join的执行节省了一次作业.文献[17]对MapReduce框架进行修改,允许不同操作间的数据管道式传输,支持在线聚集以及持续查询,然而改进后的框架使得失效恢复(fail recovery)机制变得非常复杂,且对于批处理性能的提高也很不明显.文献[7-9]给出了通用的MapReduce负载均衡方法,但他们都只考虑了任务的输入代价,不适用于连接运算,因为它的输出代价也不可忽略.本文提出的MapReduce负载均衡方法着重考虑连接任务的负载特性,与传统的负载均衡方法有所不同.具体来讲,本文提出的负载均衡方法基于的Reduce Join的Map阶段仅负责将参与连接的数据表中的记录解析成Key-Value对(此时I?O操作很少),并通过Shuffle阶段传输到对应的Reduce任务中,而真正的连接操作是在Reduce阶段中完成的(此时会产生大量I?O操作).考虑到I?O代价是影响连接查询的主要因素,我们对产生大量I?O 操作的Reduce阶段进行读写分析,综合考虑Reduce任务的输入和输出代价及其对应的读写权重,最终基于这一综合代价给出了Reduce任务的负载均衡方法.文献[18]中实现的负载均衡是通过均衡数据块实现的,本文与其有本质上的区别.多元连接执行计划的解空间很大,短时间内很难找到最优解.本节首先通过查询树模型确定解的一个子空间,而后通过复杂度较小的启发式算法从中找到一个近似最优解,并在此基础上做进一步的优化以均衡中间结果的存储代价与网络传输代价.最后,根据MapReduce框架特性给出一种算法来确定无依赖关系的连接操作间的并行执行顺序,该算法通过对节点资源的充分利用来提高多元连接的效率.2.1 查询树模型多元连接可以用一个查询图G=(V,E)来表示[46],其中V是节点的集合,每个节点代表一个关系(记为Ri),E是边的集合,每条边?Ri,Rj?连接2个之间存在连接属性(A,B,C等)的关系,如图1所示.图1(a)所示的查询图包含6个关系,为6元连接;同理,图1(b)所示的查询图为8元连接.多元连接执行计划的最优解确定是个P完全问题[6],传统优化方法通常采用查询树模型限定解的一个子空间,并设计算法从中获取一个最优解.如图2所示,主流的查询树模型有Left-deep Tree,Right-deep Tree,Zigzag Tree,Bushy Tree[19]四种,其中前3种为顺序执行,最后1种为并行执行.很多研究工作[4-5]显示,并行执行的Bushy Tree更适用于分布式环境.从图2也可以看出,只有基于Bushy Tree确定的连接顺序中不同连接操作间不是完全的依赖关系,是可以并行的.因此,本文选取Bushy Tree作为MapReduce多元连接的查询树模型.2.2 查询树模型一个n元连接的执行方式有2种:1)将其拆分为n-1个2元连接分别执行,每个2元连接对应一个作业;2)在一个作业中执行所有连接操作.然而,当n较大时,第1种执行方式的作业初始化代价以及中间结果的存储代价也随之增大,第2种执行方式也因为数据的多次传输而产生较大的网络代价.为解决该问题,本文首先基于Bushy Tree初步确定多元连接的执行顺序,而后根据是否受益将部分2元连接合并成多元连接.1)基于I?O代价的连接顺序确定方法通过Bushy Tree确定多元连接的执行顺序首先需要给出树的构建规则.考虑到连接运算属于I?O密集型计算,连接代价以I?O代价为主,本文针对MapReduce 特性给出连接运算的I?O代价模型,并选择I?O代价最小的连接顺序.正如第1节中的描述,本文选择Reduce Join作为连接算法,下面以2元连接为例对其进行简单介绍.Reduce Join由Map阶段和Reduce阶段组成.Map阶段主要完成如下操作:①Map任务读取(通常为本地读)参与连接的2个关系;②以连接属性为键、记录为值,按键排序后输出键值对到本地磁盘;③将中间结果通过网络传输给Reduce任务.Reduce阶段主要完成如下操作:①接收来自Map任务的键值对并按键排序;②执行连接操作,并将结果写入分布式文件系统(HDFS).基于该分析,我们给出关系Ri和Rj进行Reduce Join的I?O代价计算方法,见式(1):其中,C1,C2,C3分别为本地、网络和HDFS的I?O代价权重,三者均与系统硬件相关(其中C3还与HDFS的副本个数设置有关),其值均可事先通过文件读写实验测出(在本文的实验环境中,副本个数为3,通过实验测得3个参数的值分别为C1=3.67s?GB,C2=8.93s?GB,C3=13.37s?GB,三者之间的比值为1:2.4:3.6);|Ri|代表关系的基数.另外,Map阶段操作②首先需要溢出写文件,而后读取并排序输出,因此共需3次读写操作;Reduce阶段的操作①使用内存和磁盘进行混合式排序,因此我们用参数λ表示该混洗比例,其值可通过经验设定.通过Bushy Tree确定连接顺序时,我们每次从查询图G=(V,E)中选择I?O 代价最小的连接操作执行,而后更新图G及其对应的关系的特征参数,直到执行完所有连接运算(见算法1).算法1的复杂度为O(log(|V||E|)),小于文献[5-6]的复杂度O(log(|V|2|E|)).算法1.PMC算法.?*基于MC(minimal cost)的执行计划(plan)确定算法*?输入:G=(V,E),query profile;?*包括关系的基数、连接属性的基数等相关参数*?输出:Bushy Tree.PMC算法中计算最小代价时,|Ri|和|Rj|均已知,|RiRj|未知,需要我们计算.目前关于|RiRj|的计算方法通常假设Ri和Rj在连接属性A上均匀分布[4,9],具体计算方法见式(2):其中,|A|为连接属性的基数.然而,事实上Ri和Rj通常不满足均匀分布这一假设,因此在实际应用中,我们应该考虑数据倾斜因素.设Fi和Fj为A在Ri和Rj中出现的频数分布,则定义倾斜度如下:定义1.倾斜度.定义倾斜度δ为频数分布Fi和Fj偏离均匀分布的程度,表达式见式(3):在实际计算中,倾斜度可以通过采样获取.有了倾斜度,|RiRj|的计算方法见式(4):因为考虑倾斜度因素计算出的|RiRj|更精确,同时基于最小代价的PMC算法确定的连接顺序也更优.2)基于Replicated Join的优化通过Bushy Tree确定的执行顺序仅包含2元连接,这样的执行计划会导致较高的作业初始化代价和中间结果的存储代价.考虑到算法1在复杂度上的优越性,我们保留由它确定的执行顺序,并在此基础上做进一步的优化.解决上述问题的直观想法为减少作业个数,也即增加每个作业执行的连接操作个数.Replicated Join满足该需求,但该算法中同一个键值对需要被复制到多个Reduce任务上,网络代价较高.为此,本文分别计算查询图采用Replicated Join以及采用多个2元连接这2种执行方法的I?O代价,定义“受益(benefit)”为二者的代价差.当受益为正时,合并这些2元连接,如图3所示.2元连接的I?O代价见式(1),下面给出Replicated Join的I?O代价计算方法.设查询图G=(V,E),关系集合V={R1,R2,…,Rn},E关联的连接属性集合为E-,Ri关联的连接属性集合为E-i,Replicated Join的I?O代价计算见式(5):基于Replicated Join的优化需要对PMC算法确定的Bushy Tree进行遍历,以合并所有可能的2元连接.然而,这样做的代价很高,本文考虑到对无依赖关系的连接操作执行Replicated Join明显会导致较高的网络I?O代价,因此仅判定具有依赖关系的连接操作(也即图3(a)中只能顺序执行的子树).另外,如果一个顺序执行的子树进行Replicated Join时受益为负,那么包含该子树的顺序执行子树的受益也为负.通过以上方法能够大大降低树的遍历代价.基于Replicated Join的优化算法见算法2.OPTB的算法复杂度小于PMC算法确定的Bushy Tree中所有最大顺序执行子树的高度之和.又考虑到顺序执行子树的最大高度为n-1,故OPTB的算法复杂度为O(n).2.3 并行执行顺序很多关于多元连接执行计划的优化研究[4-6]都只确定了连接的执行顺序,并未考虑MapReduce环境下无依赖关系的连接操作间的并行执行策略.若图3(b)为2.2节中最终优化的多元连接顺序,那么连接操作R2R7,R4R8,R3R5R6之间无依赖关系,可以并行执行.下面结合MapReduce特性对并行执行的优势进行分析.MapReduce集群中每个节点最多可执行的Map任务个数是预设的,因此最多可并行执行的Map任务数也是确定的.对于连接运算,Reduce Join中的Map任务负责将关系中的元组按照连接属性值进行分区,其执行时间仅取决于处理数据量.又因为每个Map任务处理一个固定大小的分片,我们可以认为同时分配的Map任务同时结束.设MapReduce每次最多可并行的Map任务个数为M,M个任务的并行执行称为一轮[2,20-21].若每轮Map任务的执行时间为T,作业Ji需要的Map任务个数Mi=ai×M+bi,其中ai,bi∈NN,bi∈[0,M),那么可以认为Ji的执行时间为(ai+ bi?M )T.若作业Jj需要的Map任务个数Mj=aj×M+bj,那么当bi+bj≤M时,2个作业的并行执行时间为(ai+aj+1)T,而串行执行时间为(ai+aj+2)T,此时并行执行可节省T时间;当bi+bj>M时,并行执行时间和串行执行时间同为(ai+aj+2)T.综上,当bi+bj≤M 时,作业Ji和Jj并行执行的效率高于串行.当有多个作业满足这一条件时,我们选取bi+bj最大的2个作业并行执行,从而充分利用计算资源.下面给出具体的算法实现:2.4 小结通过2.2节和2.3节给出的优化算法,我们最终动态确定多元连接的执行计划.图4以流程图的方式描述了执行计划的优化步骤.给定查询图G,首先通过PMC算法初步确定Bushy Tree,而后分别通过算法OPTB和PEE进行优化,直到更新后的树中叶子节点的个数小于3.良好的执行计划固然重要,但对执行框架的优化同样可以有效地提高多元连接的执行效率,这一点在分布式环境中尤为重要.一种公平的并行任务负载分配方法可以有效地减少MapReduce中的“短板效应”,从而提高连接操作内部的并行度.连接运算的MapReduce实现算法有很多,分别适用于不同的查询场景.不失一般性,本文选择没有任何约束条件的Reduce Join作为连接执行算法.该算法包括Map和Reduce 2个阶段,Map阶段只负责将关系中的元组按照连接属性值进行分区以输出到不同的Reduce任务,运算完全相同,因此Map任务的负载完全取决于处理数据量.又因为MapReduce中每个Map任务只负责处理一个数据分片(split,默认64MB),所以Map阶段各个Map任务是负载均衡的.很多研究工作也都作出Map任务均衡的假设,如文献[6,22].因此,本文仅研究连接运算的Reduce任务负载均衡.Reduce Join算法在Reduce阶段执行连接运算,连接属性值的不均匀分布将会导致由默认Hash分区函数确定的Reduce任务负载不均衡.为提高Reduce任务间的并行度,本节给出一种针对连接运算的负载均衡优化方法.3.1 负载均衡模型设R1和R2为参与连接的2个关系,连接属性值的集合记为A,A在R1和R2中的频数分布分别为F1和F2.在计算Reduce任务的负载之前,我们先给出连接属性值a∈A的负载贡献定义如下:定义2.负载贡献.连接属性值a∈A的负载贡献(LCa)是指执行该连接操作的代价,见式(6):LCa=ω1(f1a+f2a)+ω2(f1a×f2a),(6)其中,f1a和f2a分别为R1和R2中连接属性值为a的元组个数;ω1和ω2为Reduce任务输入数据和输出数据的处理代价权重,输入数据为网络I?O,输出数据写到HDFS上,二者的比值是由运行多元连接的分布式集群系统决定的.此处,我们认为连接运算代价中I?O占主导地位,CPU处理代价可以忽略,文献[5-6]中也有同样结论.文献[8]给出的当前最好的负载均衡方法中采用的代价模型仅考虑输入数据对Reduce任务负载的影响,而事实上对于连接运算输出数据的代价不容忽略.通过对MapReduce运行机制的分析可知,Reduce任务的负载取决于分区函数.分区函数将连接属性值划分成若干个组,每组对应一个Reduce任务.设分区函数将连接属性值的集合A划分为A1,A2,…,AR一共R个组,那么组Ai的处理代价第i个Reduce任务的负载Load(Ri)=Load(Ai),Reduce任务负载均衡这一目标可以等价表示如下:负载均衡模型中最关键的是获取连接属性A在R1和R2中的频数分布F1和F2.获取这2个分布,最精确的方法是对不同键值进行频数统计[23],但当键值个数很多时,会耗费大量存储,且在汇总各个Map任务的统计信息时还会带来很高的网络传输代价.针对该问题,文献[5,7-9]对键值进行Hash从而降低统计信息的规模.然而,文献[9]在Map任务执行的同时对频数信息进行统计,这样会导致第2轮Map任务无法执行,还会造成数据到Reduce的传输延迟,因为必须等到根据频数信息确定Partition函数后才能进行传输.文献[5,7-8]则单独开启一个作业进行频数统计,避免了上述问题.基于以上分析,本文可以采用类似的方法获取连接属性值的频数信息,并据此确定Reduce任务的个数以及Partition函数.3.2 负载均衡算法文献[6]指出Reduce任务的负载均衡是一个NP难问题,不能够在多项式时间内获取最优解,因此我们仅专注于寻找尽可能接近最优解的近似解.由于连接属性值的不可分割性,拥有相同连接属性值的键值对必须发送到同一Reduce任务节点进行连接运算,Reduce任务的负载均衡问题可以转换成尽可能降低Reduce任务的最大负载max{Load(Ri)}.理想情况下,所有Reduce任务的负载完全相同,此时max{Load(Ri)}=Avg{Load(Ri)}.然而,这种情况不总发生,本文给出一种朴素的均衡算法来获取近似解.该算法首先对A中所有连接属性值的负载贡献值按降序排序,然后每次将连接属性值为a的键值对分配给当前负载最小的Reduce任务(详见算法4).为评估算法4,我们将由该算法获取的Reduce任务负载最大值Lmax与最优算法获取的最大值L*max进行对比,并得出Lmax的上界如下:Lmax≤1.5L*max.本文给出的负载均衡方法是以等值连接为例进行描述的,它还适用于其他连接,也可以扩展到连接以外的其他类型作业.例如,进行近似连接时,只需将连接属性值a(键值对中的键)替换为一个满足近似条件(如|a1-a2|≤δ)的2元组?a1,a2?,并将负载贡献值的计算公式中f1a和f2a分别替换为R1中连接属性值为a1的元组个数以及R2中连接属性值为a2的元组个数.执行Replicated Join时,键值对中的键将会变成多个连接属性构成的多元组.对于连接以外的其他作业,我们可以将Reduce任务输入数据的处理代价函数(频数的加和)以及输出数据的处理代价函数(频数的乘积)进行适应性的更改.3.3 Reduce任务个数的确定现有通用的Reduce端负载均衡的方法[7-9]均未考虑Reduce任务个数的确定方法,本文根据获取的键值频数统计信息给出一种简单的确定规则.设Map任务的输出中不同键值的个数为k,所有键值的负载贡献和为Sum,其中键值的最大负载贡献为LCmax,Reduce任务个数为R,通过优化算法获取的Reduce任务最大负载为Lmax.当LCmax≥Sum?R时,也即R≥Sum?LCmax时,Lmax的取值不再下降,始终为LCmax,这意味着作业的性能不再提高,而它的资源消耗却随着R的增加而增大.因此,有必要找到R的一个临界值使得连接的执行效率最高.另外,考虑到Lmax的取值还与Sum有关,本文给出均衡算法的度量函数g(Lmax,R)的表达式如下:其中,α是性能与能耗之间的权重比,度量值越小,均衡效果越好.函数g (Lmax,R)应该存在一个极小值点R0,使得在该点处性能与资源消耗达到一个很好的折中,且该值有可能比Sum?LCmax小.4.2节中通过大量实验得出,当α=0.05时,函数g(Lmax,R)的极小值点正好就是Lmax不再下降的临界值.另外,考虑到不同键值的个数可能会很大,这将导致频数统计信息不能存入内存,针对该问题,我们可以采用文献[8]中提出的optimal sketch packing算法,该方法通过Hash函数将键值(这里是负载贡献值)进行哈希后再进行均衡分配,从而降低键的规模,节省统计信息占用的内存.本质上,该方法是牺牲精确度来降低统计信息的存储空间.本节设计实验对提出的连接执行计划优化方法以及连接负载均衡方法进行验证和分析.其中,4.1节中的实验是依托图1中给出的查询图生成的虚拟数据表进行多元连接查询设计的,该实验能够很好地验证本文提出的执行计划的优化效果;4.2节中的实验则是依托TPC-H数据集中提供的逻辑数据表进行设计的,本文通过控制其数据的生成方式来设计实验以验证文中提出的连接负载均衡方法.实验的具体设置在4.1节和4.2节中均有对应的详细描述.。
基于MapReduce的混合连接算法
基于MapReduce的混合连接算法胡龙;罗军【期刊名称】《计算机与现代化》【年(卷),期】2015(000)006【摘要】运行在Hadoop上的数据仓库Hive可以让更多的用户通过SQL接口来处理Hadoop数据。
然而,Hive却没有为连接操作提供有效的途径,而连接操作是一种常见且在Hadoop中非常费时的操作。
为了解决连接操作在Hadoop中性能的问题,本文提出一种混合策略的连接算法HJ-A,根据当前应用场景在几种连接算法之间选择相对较合适的算法,实验结果表明,HJ-A可以在大多数的Hadoop场景中发挥很好的性能。
%Hive, the database on Hadoop, enables more users to process relation data by providing sql-like interface. However, Hive does not provide an efficient approach for join, a common but expensive operator in Hadoop. In order to solve the perform-ance of join, this paper proposes a novel hybrid algorithm, HJ-A, which can help to automatically choose the relatively better one among several methods, according to the current situation. Experiments results show that HJ-A can get best performance in most situations.【总页数】6页(P86-91)【作者】胡龙;罗军【作者单位】重庆大学计算机学院,重庆 400044;重庆大学计算机学院,重庆400044【正文语种】中文【中图分类】TP391【相关文献】1.基于列存储的MapReduce分布式Hash连接算法 [J], 张滨;乐嘉锦2.一种基于MapReduce的大数据集相似自连接算法 [J], 孙德才;王晓霞3.一种基于负载代价的MapReduce等值连接优化算法 [J], 郑钤;向军4.数据倾斜情况下基于MapReduce的连接算法 [J], 马清山;钟勇;王阳5.一种基于MapReduce的局部相似自连接算法 [J], 王晓霞; 孙德才因版权原因,仅展示原文概要,查看原文内容请购买。
基于共享的MapReduce多查询优化技术
d o i : 1 0 . 3 9 6 9 / j . i s s n . 1 0 0 1 — 3 6 9 5 。 2 0 1 3 . 0 5 . 0 3 1
Ab s t r a c t :T o i mp r o v e t h e mu l t i — q u e r y p r o c e s s i n g e f f i c i e n c y f o r Ma p Re d u c e ,t h i s p a p e r p r o p o s e d a mu l t i - q u e r y o p t i mi z a t i o n
享
S h a r i n g - - b a s e d mu l t i - ・ q u e r y o p t i mi z a t i o n a p p r o a c h u s i n g Ma p Re d u c e
Z HA O B a o — x u e ,L I Z h a n , h u a i , C HE N Q u n , P A N We i , J I A N G T a o , J I N J i a n
q u e r i e s w h i c h h a d s h a i r n g o p p o r t u n i t i e s a n d c o u l d b e m e r g e d .N e x t i t c o n s t r u c t e d a d i r e c t e d a c y c l i c g r a p h( D A G)a c c o r d i n g
最新 MapReduce任务调度的资源优化研究-精品
MapReduce任务调度的资源优化研究1 引言IDC报告显示,预计2020年全球数据总量将达到40 ZB以上,其中包括80%的非结构化数据。
大数据正以前所未有的速度和规模融人人们的生活,数据已经渗透到科学研究、仿真、互联网应用、等诸多应用领域,成为重要的生产力。
人们对于大数据的挖掘分析和运用,对推动产业转型、提高核心竞争力发挥着极其重要的作用。
简单来说,大数据是指其体量、显现速度和处理难度超出目前常规数据库系统能管理、处理和分析的数据【l】。
随着数据量和任务密度的不断增加,传统的数据处理技术已不能适应当前数据处理的需求。
虽然大数据处理平台资源规模随着并行计算能力的提高而不断扩展,但面对纵横交错的大数据计算任务并行执行和并发调度过程,如何合理配置平台资源,进行资源配置优化,直接决定了大数据平台的业务处理能力。
MapReducec2]最早是由Google提出的一种面向大规模数据处理的并行计算模型和方法,用于TB级以上的数据集运算。
MapReduce 的推出给大数据并行处理带来了革命性影响,是目前为止最成功、最广为接受和最易于使用的大数据并行处理技术之一。
简单来说,MapReduce是将一个大作业拆分为多个小作业。
同时,这个平台是多用户平台,每个合法用户都可以向平台提交作业,这就带来了作业调度问题。
如何有效地对各项任务进行调度,对大数据处理平台资源进行优化,以达到提升大数据处理平台资源利用率、增强平台业务承载能力以及响应速度的最终目标。
后文将对MapReduce计算任务调度的资源配置优化进行分析。
2大数据及大数据处理2.1 大数据的特点相对于传统数据,大数据有5个特征,即体量大、速度快、模态多、难辨识和价值密度低。
但大数据真正难以应对的挑战不在于数据量大,而在于数据类型多样、要求及时响应和数据的不确定性。
通过对计算机系统的扩展可以在一定程度上缓解数据量大带来的挑战,但对现有的数据库系统难以同时处理结构化数据和文本、视频、语音等非结构化数据,难以做到快速响应、得到高质量数据、辨别数据真伪。
基于MapReduce的Web链接结构分析算法研究的开题报告
基于MapReduce的Web链接结构分析算法研究的开题报告一、项目背景Web链接结构分析是Web搜索引擎中的重要问题之一,主要目的是通过分析网站链接结构,发现不同网站之间或内部的相关性、重要性、主题等信息,从而提高搜索结果的相关性、准确性和排序效果。
传统的方法主要依靠爬虫来抓取网页信息,并利用各种复杂算法对这些网页中的链接进行抽取、分析和建模,从而形成一个网站链接图,然后再针对该图进行分析。
近年来,随着互联网规模的快速增长和数据量的急剧膨胀,传统的Web链接结构分析算法已经面临巨大的挑战,难以处理海量数据,分析速度和效果都十分有限。
为此,基于MapReduce的分布式计算异步编程模型应运而生,该模型可以支持高效、可扩展的并行计算,有效解决了传统算法面临的种种问题。
本项目拟基于MapReduce分布式计算模型,研究Web链接结构分析算法,并设计实现一个完整的基于MapReduce的Web链接结构分析工具,旨在提高Web搜索引擎的效率和准确性,满足现代互联网在大数据领域的应用需求。
二、研究内容本项目拟围绕以下研究内容展开:1.基于MapReduce的Web链接结构分析算法的研究和设计;2.针对MapReduce模型的特点,设计优化Web链接图的构建和更新流程;3.实现Web链接结构分析算法在Hadoop平台上的分布式并行计算;4.利用实际的Web数据集进行试验验证,对比分析基于MapReduce 的算法和传统算法在准确性、效率等方面的差异。
三、技术路线1.数据预处理:采用网络爬虫技术抓取互联网上的网页数据,去重、过滤无关信息,形成原始数据集。
2.数据转换:将原始数据转换为可处理的键值对形式,方便后续的MapReduce计算。
每个键值对的键表示网页URL,值包含网页标题、正文、链接等信息。
3.构建Web链接图:利用MapReduce模型对键值对进行处理,构建Web链接图,以网页URL作为图中的节点,其链接关系作为图中的边。
基于Mapeduce的海量数据并行处理关键技术研究的开题报告
基于Mapeduce的海量数据并行处理关键技术研究的开题报告一、研究背景与意义近年来,随着物联网、云计算等技术的迅猛发展,海量数据的产生呈现出爆炸式增长的趋势。
这些数据不但包括传统的结构化数据,还包括非结构化数据、多媒体数据等各种类型的数据。
如何高效地处理这些海量数据,成为当前亟待解决的问题。
目前,一种被广泛采用的海量数据处理技术是MapReduce。
MapReduce是一种并行处理框架,在分布式环境下处理非常大的数据集。
MapReduce可以对各种类型的数据进行并行处理,并且可以处理GB、甚至TB的数据。
在MapReduce中,数据被分为许多小块,分布式处理,最后将结果合并起来。
MapReduce的运行效率很高,是海量数据处理的首选技术。
然而,MapReduce在并行处理海量数据的过程中,仍然需要面临多个问题。
例如,数据划分、节点通信、数据归并等问题。
因此,如何进一步提高MapReduce的并行处理效率,是一个挑战性的研究方向。
二、论文研究内容和方案本文的研究内容是基于MapReduce的海量数据并行处理关键技术的研究。
本文将主要研究以下几个方面:1. 数据划分对于海量数据集,如何将数据划分为更小的数据块,能够有效地提高MapReduce的并行处理效率。
因此,我们将研究数据划分的最佳方法。
2. 数据存储为了能够更好地处理数据,我们需要选择最优的数据存储方式。
在本文中,我们将研究不同的数据存储方式,分析其对MapReduce的影响。
3. 节点通信节点通信是MapReduce中的一个关键环节。
在多节点环境下,如何高效地进行节点通信,是提高MapReduce并行处理效率的关键因素。
因此,我们将研究节点通信的最佳实践方法。
4. 数据归并在MapReduce处理过程中,不同节点处理完的数据需要进行归并。
然而,数据归并的过程也会导致性能瓶颈。
因此,我们将研究如何优化数据归并的过程,提高MapReduce的并行处理效率。
mapreduce框架python实现优化算法
在现代大数据处理领域中,MapReduce框架是一种非常重要的数据处理模型和计算框架。
它通过将大规模数据集分解成小的数据块,并在集群中分布式处理这些数据块,从而实现高效的数据处理和计算。
在本篇文章中,我们将重点探讨MapReduce框架在Python中的实现优化算法。
1. MapReduce框架简介MapReduce框架由Google公司提出,用于支持分布式计算和大规模数据处理。
它由Map和Reduce两个阶段组成,Map阶段负责将输入数据切分成小的数据块,并进行处理和映射;而Reduce阶段则负责对Map阶段输出的结果进行汇总和计算。
通过这种方式,MapReduce框架可以高效地处理大规模数据,从而实现分布式计算和数据处理。
2. Python中的MapReduce库在Python中,有许多库和工具可以用于实现MapReduce框架,如mrjob、Pydoop等。
这些库可以帮助开发人员在Python环境下实现MapReduce任务,并且提供了丰富的API和工具来优化MapReduce任务的实现。
在实际应用中,选择合适的MapReduce 库对于实现高效的数据处理和计算至关重要。
3. MapReduce框架的优化算法在实际应用中,MapReduce任务的性能往往受到数据规模和计算复杂度的影响。
针对特定的数据和计算任务,需要对MapReduce框架进行优化,以提高任务的性能和效率。
在Python中实现MapReduce 框架的优化算法可以从以下几个方面进行考虑:3.1 数据预处理和压缩针对输入数据规模较大的情况,可以考虑对输入数据进行预处理和压缩,以减少数据传输和处理的开销。
通过使用合适的数据压缩算法和数据预处理技术,可以有效地减少MapReduce任务的处理时间和资源消耗。
3.2 并行计算和任务调度在MapReduce任务中,合理地进行并行计算和任务调度是提高任务性能的关键。
可以通过优化Map和Reduce阶段的并行度,合理地分配任务和资源,从而提高整个MapReduce任务的并行处理能力和效率。
基于MapReduce的knn连接方法
H-BNLJ(Hadoop Block Nested Loop Join)的方法
简介:是一种直接的局部暴力解决KNN连接的算法,它利用 MapReduce的循环嵌套算法。
基本思想:把待连接的两个集合R和S分割成大小相等的n块, 这里可以通过线性扫描的方法来进行,每个块中分别包含 有|R|/n(或|S|/n)个元素。然后,在Map阶段,每个连接 块包含一个来自于R的分割块一个来自于S的分割块(也就 是总共有n2个连接块)。在Reduce阶段,采用了n2个reduce 来处理每个mapper生成的中间结果。每个reduce在本地嵌 套执行局部R和S的Knn连接,也就是,对每个局部块中的S 通过嵌套循环找到在局部快中的R的knn。所有来自reduce的 结果写入(n2)DFS文件再进行排序。
基于MapReduce的Knn连接方法
----谢荣东论文观点展示
Knn连接
即K最近邻(kNN,k-NearestNeighbor) 连接
解决的问题:找出一个样本在特征空 间中的k个最相邻的样本,根据其中 的大多数属于某一个类别,来判断该 样本也属于这个类别,并具有这个类 别上样本的特性。
不足之处:计算量较大,因为对每一 个待分类的文本都要计算它到全体已 知样本的距离,才能求得它的K个最 近邻点。
H-BNLJ的问题
本质上是暴力解法 未采用索引,当数据量大时,不能有效从外存(ibuted Sketched Grid)
引入分布式概略化网格索引来对数据进行划分和索引
基本思想:先对数据进行网格化划分,根据R和S的变化 范围生成m2个栅格,其中每个栅格的x和y变化范围为 intervalx和intervaly。每个R或S中的元素根据它的x和y坐标 确定所属的栅格。对每个栅格而言,我们分布地创建了 对应于此栅格的分布式索引DSG。这样,每个reduce可以 快速地通过本地DSG索引来发现本地Knn而避免嵌套循环。
基于MapReduce分布式连接算法优化技术研究
基于MapReduce分布式连接算法优化技术研究
李素若
【期刊名称】《铜陵学院学报》
【年(卷),期】2015(014)005
【摘要】为了解决大规模数据集的并行运算问题,采用以映射与归约为主体思想的编程模型MapReduce,以分布式QR-树索引结构与分布式并行编程模型MapReduce为组合进行连接算法设计.研究结果表明:采用该算法使得数据分布式并行编程计算更加便捷,也解决了传统单机集群系统无法满足海量数据时空开销的迫切需求.在云计算背景下研究MapReduce分布式空间连接算法有很大的意义和价值.
【总页数】4页(P107-109,123)
【作者】李素若
【作者单位】荆楚理工学院,湖北荆门448000
【正文语种】中文
【中图分类】TP311.13
【相关文献】
1.基于列存储的MapReduce分布式Hash连接算法 [J], 张滨;乐嘉锦
2.非均匀数据分布下的MapReduce连接查询算法优化 [J], 张敬伟;尚宏佳;钱俊彦;周萍;杨青
3.基于MapReduce模型的排序算法优化研究 [J], 蒋勇;赵作鹏
4.基于MapReduce模型的排序算法优化研究 [J], 金菁
5.基于PML结构文件的MapReduce算法优化 [J], 田世海;魏志强
因版权原因,仅展示原文概要,查看原文内容请购买。
厦门大学数据库实验室MapReduce连接优化
相似度连接算法
① 前缀过滤 ③ 根据前一步 生成的键值 对生成最后 的相似性连 接结果
② A属于X组,B、G属于Y组, 把第一阶 C、D属于Z组
段产生的 结果广播 给每个 map
相似度连接
多表连接
多表连接
在数据库应用领域中,经常需要对多个表进行连接操作,比较 有代表性的是星型连接与链式连接。 星型连接:在数据仓库应用中,星型模式是最常用 的数据表示模型,包括一个事实表和多个维表. 链式连接:
多表等值连接算法
• Let us consider joining three relations
•
We could implement this join by a sequence of two two-way joins, choosing either to join R and S first, and then join T with the result, or to join S and T first and then join with R. An alternative algorithm involves joining all three relations at once, in a single map-reduce process. The Map processes send each tuple of R and T to many different Reduce processes, although each tuple of S is sent to only one Reduce process.
需要参加相似连接运算的数据,并生成连接结果的键值对。最后通
过一个MapReduce作业,根据前一步生成的键值对生成最后的相似 性连接结果。该算法充分利用了相似性连接的特点,过滤掉不可能 成为最终结果的数据,提高了查询效率,但应用范围只限于文本字 符串的相似性连接。
MapReduce的应用及优化技术
MapReduce的应用及优化技术MapReduce是一种在分布式计算环境下进行大规模数据处理的编程模型,可以帮助用户轻松地处理海量数据和并行化计算。
自2004年Google首次提出以来,MapReduce已经发展成为了解决大规模数据处理的重要工具,广泛地应用于互联网、金融、电信、能源、医疗等领域。
本文将重点介绍MapReduce的应用及优化技术。
一、MapReduce的应用1.1. 数据处理数据在互联网时代变得异常重要,各种应用场景下的数据都是巨量的。
在数据处理方面,MapReduce在多个领域得到广泛应用,如搜索引擎、电子邮箱、日志分析等。
以搜索引擎为例,海量数据的索引构建、排序和搜索是MapReduce的主要应用之一。
1.2. 分布式机器学习MapReduce也应用于分布式机器学习领域,基于机器学习算法和MapReduce框架,建立了许多分布式的ML工具。
在这个领域里,MapReduce解决了输入数据分散、存储大量数据、高并发数据处理等问题,是一个经典的大数据分析平台。
1.3. 数据挖掘在数据挖掘方面,MapReduce也应用较广。
比如在用户画像分析和推荐系统中,输入数据很大,但只需要对数据进行简单的处理,也就是读取数据、处理数据,然后输出结果。
MapReduce正是对此类场景的应用之一。
二、MapReduce的优化技术2.1. 数据预处理数据预处理是MapReduce的重点优化技术之一。
对于经常需要重读的数据,首先可以通过预处理将数据缓存到内存中。
此外,与其他的数据存储方案如关系型数据库,MapReduce的一个缺陷是数据压缩会占用大量的CPU时间。
针对这个问题,可以使用一些基于字典编码和压缩算法的优化方法来缓和这个问题。
2.2. 任务调度优化MapReduce中的任务调度对执行效率有重大影响。
因此,进行任务调度优化是提升MapReduce系统执行效率的关键。
具体而言,任务调度的优化可以通过以下方面实现:(1)提高资源利用率:可以在任务调度时,根据数据本地性原则,分配尽量多的任务到接近数据的物理节点中,降低数据移动的开销。
基于MapReduce的大数据连接算法的设计与优化
基于MapReduce的大数据连接算法的设计与优化一、概述随着信息技术的飞速发展,大数据已经成为当今时代的核心资源之一。
大数据不仅具有海量的数据规模,而且其数据类型多样、处理速度快、价值密度低等特点也为其处理带来了极大的挑战。
在这样的背景下,如何高效地处理和分析大数据,提取出有价值的信息,成为了当前信息技术领域的研究热点。
MapReduce作为一种面向大规模数据处理的并行计算模型和方法,自Google公司提出以来,已经在大数据处理领域得到了广泛的应用。
其基于“分而治之”的思想,将大数据处理任务分解为多个子任务,并在集群中的多个节点上并行执行,从而大大提高了数据处理的速度和效率。
随着数据规模的进一步增大和数据处理需求的日益复杂,传统的MapReduce算法在处理大数据连接操作时面临着诸多挑战。
连接操作是大数据处理中的一项基本操作,但在大数据环境下,连接操作的复杂度往往非常高,导致处理效率低下。
如何设计和优化基于MapReduce 的大数据连接算法,提高连接操作的效率,成为了当前大数据处理领域亟待解决的问题。
本文旨在针对大数据环境下的连接操作问题,设计和优化基于MapReduce的连接算法。
通过深入研究MapReduce模型的原理和特性,结合大数据连接操作的特点,本文提出了一种新型的基于MapReduce 的大数据连接算法,并通过实验验证了其优越的性能。
本文还对算法的优化进行了深入探讨,从数据分区、数据倾斜、网络通信等多个方面提出了有效的优化策略,进一步提高了连接操作的效率和稳定性。
本文的研究不仅有助于推动大数据处理技术的发展,提高大数据处理的速度和效率,而且对于促进大数据在各个领域的应用和落地也具有重要的意义。
1. 大数据时代的挑战与机遇在《基于MapReduce的大数据连接算法的设计与优化》文章中,“大数据时代的挑战与机遇”段落内容可以如此生成:随着信息技术的飞速发展,我们已步入了一个数据爆炸的时代,即大数据时代。
基于MapReduce框架的重分区连接的优化研究
基于MapReduce框架的重分区连接的优化研究肖颖【期刊名称】《计算机时代》【年(卷),期】2016(000)004【摘要】Repartition join is the most commonly used join strategy on MapReduce framework. This paper discusses the standard repartition join and the improved repartition join which fixed the buffering problem of the standard version. And then, a new method, pre-filter is proposed. The pre-filter runs at the stage when MapReduce divides the large date file into several splits. The method can make the amount of data smaller in every stage of MapReduce processing, save the space of buffer, and reduce the overhead of data transmission between Map stage and Reduce stage.%重分区连接查询是基于传统MapReduce框架的最常用的连接查询算法之一。
在讨论基于传统MapReduce框架的标准重分区连接算法及减小数据缓存的改进算法的基础上,提出了在数据文件分块阶段进行预筛选以精简MapReduce框架中处理的数据量的方法。
该方法能有效减少框架内部各个阶段处理的数据总量,进一步压缩缓存的使用空间并降低不同阶段之间数据传输的网络开销。
【总页数】4页(P9-11,16)【作者】肖颖【作者单位】福建师范大学协和学院,福建闽侯 350117【正文语种】中文【中图分类】TP312【相关文献】1.MapReduce框架下基于R-树的K-近邻连接算法设计 [J], 吴丽鑫;闫思宇2.基于MapReduce框架的海量数据相似性连接研究进展 [J], 庞俊;于戈;许嘉;谷峪3.MapReduce框架下基于R-树的k-近邻连接算法 [J], 刘义;景宁;陈荦;熊伟4.MapReduce框架下基于R-树的K-近邻连接算法设计 [J], 吴丽鑫;闫思宇5.基于MapReduce框架的网页并行去重算法研究 [J], 高殊丽因版权原因,仅展示原文概要,查看原文内容请购买。
基于MapReduce模式的多表联查算法
基于MapReduce模式的多表联查算法作者:高泽李常宝杨淙钧刘忠麟艾中良来源:《现代电子技术》2015年第14期摘要:多表关联查询是进行数据挖掘与分析的有效技术手段。
随着大数据时代的到来,当前的数据分析技术在进行海量数据多表联查操作时存在明显的性能瓶颈,为此提出一种基于MapReduce计算模型的多表联查算法UGS用以提升多表关联查询效率。
实验表明,在海量数据背景下,该算法的查询效率明显优于大数据领域的SparkSQL,Hive及关系型数据库的MySQL。
关键词: MapReduce;多表联查;关联空间剪枝; Spark中图分类号: TN911⁃34 文献标识码: A 文章编号: 1004⁃373X(2015)14⁃0081⁃04在当今的生产生活中,围绕着每个人每件事都会产生大量的数据,而这些数据往往是分布在不同的数据文件中,想对这些数据进行处理分析就必然要用到多表联合查询,联合查询在实际的生产生活中非常有必要。
当前的多表联合查询主要通过两种方式实现:一种是基于传统数据库的表JOIN方式,这种方式存在数据规模瓶颈问题,无法支撑大规模数据关联;另一种是基于大数据技术的多源数据融合[1]方式,虽然能够解决关联查询在数据规模方面的瓶颈问题,但在运行效率方面存在较大的优化空间,目前难以满足交互式查询需求。
因此,针对当前多表关联查询领域存在的问题,本文提出了一种基于MapReduce计算模型[2]的新型多表联查方法;实验表明,在解决多表关联数据规模瓶颈的基础上,较当前大数据领域的多表关联模式能够显著提升运行效率。
1 相关工作介绍当前多表关联查询主要借助2种方式实现:关系型数据库方式和分布式并行计算方式。
下面通过一个关联查询实例对2种实现方式进行复杂性分析。
假设2张待联查的表table1和table2,其中table1的数据量为C1条,table2的数据量为C2条。
要求输出table1.Key=table2.Key的条件下2张表的所有行,即:“SELECT * FROM table1 INNER JOIN table2 ON table1.Key=table2.Key”。
混合存储下的MapReduce启发式多表连接优化
混合存储下的MapReduce启发式多表连接优化王梅;邢露露;孙莉【期刊名称】《计算机科学与探索》【年(卷),期】2014(8)11【摘要】对MapReduce下的多表连接查询进行了研究,发现由于MapReduce 框架本身的局限性,造成执行效率较低。
针对此问题,提出了MapReduce启发式多表连接优化方法(MapReduce based heuristic multi-join opti-mization,MHMO),为不同的连接模式启发式地推荐不同的执行算法。
特别的,对于混合连接,首先将其分组为多个简单连接模式,进而定义代价模型确定各分组的最优执行顺序。
结合列存储的延迟物化技术,大大提高了MapReduce 下多表连接的执行性能。
最后,在数据仓库基准测试数据集TPCH 上进行了实验,验证了MHMO的有效性。
%The MapReduce technology has become one of the key technology for massive data processing. However, the limitation of its computing framework leads to the poor performance in multi-join query analysis tasks. To deal with this problem, this paper proposes an adaptive multi-join optimization method for MapReduce framework, called MHMO (MapReduce based heuristic multi-join optimization). For a given query including multi-join, this paper first constructs the join graph to judge its join pattern, then recommends the“optimal”execution strategy for different patterns. Particularly, for hybrid join, this paper first converts and divides it into a set of simple join patterns, then defines the cost model to choose the execution order between different groups with minimum cost.Integrated with the row-column storage and deferred materialized technology, MHMO can improve the multi-join performance in MapReduce framework significantly. Finally, based on the benchmark dataset TPCH, several experiments are made to testify the effectiveness of MHMO.【总页数】11页(P1334-1344)【作者】王梅;邢露露;孙莉【作者单位】东华大学计算机科学与技术学院,上海 201620;东华大学计算机科学与技术学院,上海 201620;东华大学计算机科学与技术学院,上海 201620【正文语种】中文【中图分类】TP311【相关文献】1.基于列存储的MapReduce分布式Hash连接算法 [J], 张滨;乐嘉锦2.内存存储模型上的多表连接优化技术研究 [J], 张延松;于利胜;王珊;陈红3.PipelineJoin:一种新的基于MapReduce的多表连接算法 [J], 林子雨;李雨倩;李粲;赖永炫4.面向非易失性存储器的多表连接写操作的优化研究 [J], 马竹琳; 李心池; 诸葛晴凤; 吴林; 陈咸彰; 姜炜文; 沙行勉5.面向多表数据连接投影和连接顺序的优化方法 [J], 宗枫博;赵宇海;王国仁;季航旭因版权原因,仅展示原文概要,查看原文内容请购买。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
d a t e d e li a n g . B u t b e c a u s e o f i t s o n e - t o - o n e s h u ii f n g s c h e me , Ma p R e d u c e d i v i d e s mu l t i wa y j o i n t a s k s i n t o a s e q u e n t i l a s u b t a s k s w h i c h
M a p R e d u c e 框架 中 的“ 一对 一分 区 ” 策 略使 得其 在处 理多 数据 连 接 任务 时 , 需 要 将该 任 务 拆 分成 多 个 链接 的子 任务 , 造 成 中间结 果集 的频 繁“ 洗牌” , 带 来 巨大 的磁盘 I / O开销 。文 中就 该 问题提 出 了一种 新 的分区 策略 : “ 一对 多分 区” 策略, 为 了 能够 在 M a p R e d u c e 框架 中实现这 一分 区策略 , 因此 需要 对 Ma p R e d u c e 框架 中的分 区函数接 E l 进 行修 改 。改进 策 略 的优 点 在 于 只要一 个 Ma p R e d u c e 任务 就能 够完 成多 数据 集连 接 任务 , 因此 节 省 了 ] / O开销 。最 后 在 搭 建 的 H a d o o p平 台 上对 改
d o i 1 1 0 . 3 9 6 9 / j . i s s n . 1 6 7 3 — 6 2 9 X. 2 0 1 3 . 0 6 . 0 1 5
Re s e a r c h o f Op t i mi z i n g Mu l t i wa y J o i n s Ba s e d o n Ma p Re d u c e
第2 3卷
第 6期
计 算 机 技 术 与 发 展
COMP UTE R I EC HNOLOGY AND DEVELOP MENT
Vo 1 . 2 3 N o . 6
2 0 1 3年 6月
J u n e 2 0 c e的 多路 连 接 优 化 方 法 研 究
王晓 军, 孙 惠
( 南京 邮 电大 学 信 息 网络技 术研 究所 , 江 苏 南京 2 1 0 0 0 3 )
摘 要: M a p R e d u c e 是G o o g l e开发 的一种 并 行分 布式计 算 模 型 , 已 在搜 索 和 处 理海 量 数 据领 域 得 到 了广 泛 的应 用 。但 是
WA N G X i a o - j u n , S U N Hu i
( I n s i t t u t e o f I n f o r ma t i o n Ne t w o r k T e c h n o l o g y , Na n j i n g U n i v e r s i t y o f P o s t s a n d T e l e c o mmu n i c a t i o n s
Na n j i n g 2 1 0 0 0 3, C h i n a )
Ab s t r a c t : Ma p Re d u c e i s a p a r a l l e l d i s t i r bu t e d c o mp u i t n g mo d e l d e v e l o p e d b y Go o g l e, i t i s wi d e l y u s e d i n t h e a r e a o f s e a r c h i n g a n d l rg a e
进 前 和改进 后 的两种 方法 进行 比较 。实 验结 果表 明 , 改 进模 式 的效率 明 显得 到提高 , 因此 这一 方案 是可 行 的。 关 键词 : M a p R e d u c e 技术; 多 数据 集 连接 ; 分 区策略 ; H a d o o p
中图分 类号 : T P 3 1 文献 标识 码 : A 文 章编 号 : 1 6 7 3 - 6 2 9 X( 2 0 1 3 ) 0 6 一 o 0 5 9 — 0 4