厦门大学数据库实验室MapReduce连接优化ppt课件.ppt_第1页
厦门大学数据库实验室MapReduce连接优化ppt课件.ppt_第2页
厦门大学数据库实验室MapReduce连接优化ppt课件.ppt_第3页
厦门大学数据库实验室MapReduce连接优化ppt课件.ppt_第4页
厦门大学数据库实验室MapReduce连接优化ppt课件.ppt_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

厦门大学数据库实验室 MapReduce 连接优化,报告人:李雨倩 导师:林子雨 2014.07.26,连接技术简介,基于传统 MapReduce 的连接,基于数据索引的连接,基于改进 MapReduce 的连接,连接技术比较,连接操作广泛应用于日志分析、联机分析处理及数据分析处理等方面。如果提高大数据连接计算速度,则可提高数据分析效率和用户体验度。下表对现有的MapReduce连接技术进行了分类与对比。,连接技术简介,基于传统 MapReduce 的连接,基于数据索引的连接,基于改进 MapReduce 的连接,基于传统 MapReduce 的连接,这类算法主要通过实现map函数、reduce函数及之间的数据流传递,来完成数据连接运算。对于这方面的研究主要集中于两表等值连接、两表非等值连接(又称连接)、两表相似度连接、多表等值连接(星型连接、链式连接)、多表非等值连接等问题。,标准重分区算法,welcome to use these PowerPoint templates, New Content design, 10 years experience,标准重分区算法由一个MapReduce作业来完成连接运算。两个表的数据都由 Mapper 读入,根据查询条件进行过滤intermediate,生成keyintermediate/valueintermediate对,其中 key是待连接列的数值,valueintermediate则由用于标记数据来自哪个表的标签和记录值组成。在混洗过程中,具有相同连接值的数据会被分到同一个Reducer上。Reducer根据标签将数据分为两个集合,再完成连接运算。标准重分区算法在Reducer上需要将数据全部装载到内存中,可能会造成内存溢出。另外,当存在数据倾斜时,标准重分区算法容易造成数据分布不均,以及连接速度缓慢和计算资源分布不均等问题。,改进的标准重分区算法,welcome to use these PowerPoint templates, New Content design, 10 years experience,为了解决标准重分区算法需要占用较大内存的问题,改进的标准重分区算法进行了以下优化:生成 keyintermediate/valueintermediate对时,keyintermediate值由待连接列的数值与表的标签共同构成,这样可以使一个表的数据都排在另一个表的前面。在混洗阶段,通过自定义的partition函数来使含有同一连接值的数据仍然分到同一个Reducer上。在Reduce阶段,在内存中缓存较小的表,另一表以流式方式读入并进行连接操作。,广播算法,welcome to use these PowerPoint templates, New Content design, 10 years experience,广播算法将待连接的两个表中较小的表以广播的方式传输到另一个表所在节点上,然后在该节点上进行连接操作。广播算法只需要一个无Reduce的MapReduce作业就可以完成,省去了数据混洗与排序的过程。当两表数据量相差很大时,广播算法具有很高的效率。然而当待连接的两个表都很大时,广播算法效率很低。,半连接算法,welcome to use these PowerPoint templates, New Content design, 10 years experience,半连接算法使用三个 MapReduce作业来完成运算,第一个MapReduce 作业生成第一个表S的连接值文件。第二个MapReduce作业利用前一步生成的连接值文件,采用类似广播算法的方法对第二个表R的数据进行过滤。第三个MapReduce作业利用过滤后的R表数据,采用广播算法进行连接。,分片半连接算法,welcome to use these PowerPoint templates, New Content design, 10 years experience,分片半连接算法需要三个MapReduce作业来完成连接运算。第一个MapReduce作业对于表S的每一分片生成该分片的连接值文件。第二个MapReduce作业根据表S的每一分片的连接值与表R进行半连接,生成每一分片的连接文件。第三个MapReduce作业读入前一步生成的每一分片的连接文件,进行连接运算,生成最终结果。,分片半连接算法,半连接存在的一个问题是:并不是过滤后的R中的每条记录都要和L(S)中的某分区做连接。分片半连接解决了这个问题。,等值连接,前面所介绍的标准重分区算法、改进标准重分区算法、广播算法、半连接算法、分片半连接算法均属于等值连接的算法,相对简单一些。,非等值连接,处理非等值连接时,由于不能预先知道两表值的分布情况,需要处理比等值连接更加复杂的问题。下面介绍一个利用一个MapReduce 作业处理非等值连接操作的算法。,非等值连接举例,Consider a join between data sets S and T with an inequality condition like S.A = T.A. Such joins seem inherently difficult for MapReduce, because each T-tuple has to be joined not only with S-tuples that have the same A value,but also those with different (smaller) A values. It is not obvious how to map the inequality join condition to a key-equality based computing paradigm. 两个待连接数据集:S、T 连接条件: S.A = T.A MapReduce连接遇到的问题:一个T元组可能和一个或多个S元组做连接。,非等值连接算法,welcome to use these PowerPoint templates, New Content design, 10 years experience,该算法利用一个二维矩阵来表示两表的笛卡儿积,通过对矩阵中满足运算结果的范围进行标记的方法表示各运算所需要的数据。为了减少任务执行时间,并减小数据倾斜带来的影响,该算法对Reducer的输入量及输出量进行了均衡,将矩阵分成面积相等的R个区域(region),每个区域都有一个RegionID。在 map 函数中,对每一个记录可能参与运算的区域都生成一个的键值对,在Reduce阶段,每一个Reducer处理该区域内的非等值连接,并生成最终结果。该算法很好地解决了MapReduce在处理非等值连接中的数据倾斜与计算平衡问题,但在数据混洗过程中需要很大的数据传输量。,非等值连接算法,S=5,7,7,8,9,9 T=5,7,7,7,8,9,标记的二维矩阵,均衡Reducer的输入量及输出量,相似度连接举例,For example,in master-data-management applications, a system has to identify that names “John W. Smith”, “Smith, John”, and“John William Smith” are potentially referring to the same person. As another example, when mining social networking sites where users preferences are stored as bit vectors (where a “1” bit means interest in a certain domain), applications want to use the fact that a user with preference bit vector “1,0,0,1,1,0,1,0,0,1” possibly has similar interests to a user with preferences “1,0,0,0,1,0,1,0,1,1”.,相似度连接算法,welcome to use these PowerPoint templates, New Content design, 10 years experience,该算法首先利用两个MapReduce作业进行数据统计与全局词项排序。接着利用一个MapReduce 作业,通过前缀过滤的方法减少需要参加相似连接运算的数据,并生成连接结果的键值对。最后通过一个MapReduce作业,根据前一步生成的键值对生成最后的相似性连接结果。该算法充分利用了相似性连接的特点,过滤掉不可能成为最终结果的数据,提高了查询效率,但应用范围只限于文本字符串的相似性连接。,相似度连接算法,数据统计与全局词项排序,b第二阶段用tear-down function在内存中排序,相似度连接算法,前缀过滤,A属于X组,B、G属于Y组,C、D属于Z组,相似度连接算法,前缀过滤,A属于X组,B、G属于Y组,C、D属于Z组,根据前一步生成的键值对生成最后的相似性连接结果,把第一阶段产生的结果广播给每个map,多表连接,在数据库应用领域中,经常需要对多个表进行连接操作,比较有代表性的是星型连接与链式连接。,星型连接:在数据仓库应用中,星型模式是最常用的数据表示模型,包括一个事实表和多个维表. 链式连接:,星型连接,事实表LINEORDER和4个维表CUSTOMER、SUPPLIER、PART和DATE.在基于星型模式的OLAP查询中,涉及最多的操作就是维表和事实表的连接,又被称为星型连接.星型连接返回连接的全部结果,是OLAP查询中代价最高的操作之一. 例1. SELECT* FROM LineorderF,CustomerC,SupplierS,PartP,DateD WHERE F.custkey = C.custkey and F.suppkey=S.suppkey and F.partkey= P.partkey and F.orderdate = D.datekey ORDER BY F.squantity+C.scredit+S.saddress+P.sbrand1+D.stime STOP AFTER k;,多表等值连接算法,welcome to use these PowerPoint templates, New Content design, 10 years experience,该算法的基本思想是,对于每一个连接属性,都有一个对应的共享值表示这个属性进行 Hash 后的桶数,Map 输出的 keyintermediate/valueintermediate对需要传到该表没有包含的属性对应的每个Hash值中,因此复制的数量由该表没有包含的连接属性所对应的共享值之积所决定。在Reduce阶段,每个Reducer将传到该节点的各表的数据进行连接,形成最终结果。随着表数的增加,应用这种算法产生的中间传输数据量将急剧增加,因此比较适合用于星型连接与表数不太多的链式连接。,多表等值连接算法,Suppose that the target number of map-keys is k. That is, we shall use k Reduce processes to join tuples from the three relations. Each of the three attributes A, B, and C will have a share of the key, which we denote a, b, and c, respectively.We assume there are hash functions that map values of attribute A to a different buckets, values of B to b buckets,and values of C to c buckets. Consider tuples (x,y) in relation R. Which Reduce processes need to know about this tuple? Recall that each Reduce process is associated with a map-key (u, v,w), where u is a hash value in the range 1 to a, representing a bucket into which A-values are hashed. Similarly, v is a bucket in the range 1 to b representing a B-value, and w is a bucket in the range 1 to c representing a C-value. Tuple ex; yT from Rcan only be useful to this reducer if hexT ?u and heyT ?v. However, it could be useful to any reducer that has these first two key components, regardless of the value of w. We conclude that (x,y) must be replicated and sent to the c different reducers corresponding to key values (h(x),h(y),w), where 1 =w =c.,多表链式连接算法,welcome to use these PowerPoint templates, New Content design, 10 years experience,针对多表的链式连接,结合了列存储的思想,提出了基于二部图的连接算法。设参加链式连接计算的表的个数为 n,该算法首先利用 n 个MapReduce作业为每个表建立一个二部图,接着执行 2(n-1) 个MapReduce作业,根据上一步骤生成的二部图以链式连接相反的顺序减少每个表中参数连接计算的记录个数,最后利用浓密树来提高连接的并行度,这至少需要再执行 n-1个作业进行连接。该算法最大程度地减少了参与连接计算的数据传输量,但需要比较多的 MapReduce 作业数。,多表链式连接算法,多表非等值连接算法,welcome to use these PowerPoint templates, New Content design, 10 years experience,该算法首先生成一个超立方体来表示多个表的笛卡儿积。接着利 用希尔伯特填充曲线对超立方体进行填充,利用希尔伯特填充曲线产生连接值,对待连接的数据进行分区,并且生成合适的R。在Map任务中,对每个记录所满足非等值条件的分区都生成一个 keyintermediate/valueintermediate对。在Reduce阶段,完成连接运算并产生最终结果。,希尔伯特曲线,希尔伯特曲线是一种能填充满一个平面正方形的分形曲线(空间填充曲线),由大卫希尔伯特在1891年提出。由于它能填满平面,它的豪斯多夫维是2。取它填充的正方形的边长为1,第n步的希尔伯特曲线的长度是2n - 2-n。,基于传统 MapReduce 的连接总结,总体来说,基于传统MapReduce框架的连接算法比较简单,不需要对数据进行组织。然而,该类算法可能需要多个MapReduce作业,需要传输的中间结果也较多,影响了连接操作的性能,连接技术简介,基于传统 MapReduce 的连接,基于数据索引的连接,基于改进 MapReduce 的连接,基于数据索引的连接,该类算法的思想是利用合适的索引对数据进行过滤,以优化查询的性能。 Hadoop+和HadoopDB都可以利用索引提高连接操作的性能。,Hadoop+主要利用寄宿索引技术来提高数据查询、连接的性能。寄宿索引将索引加入到Block信息中,并添加了Footer部分用以分隔各个分片Hadoop+利用MapReduce作业来完成索引的构建。在进行数据查询时,split函数从文件末尾根据Footer信息解析出每个分片的位置,itemize函数根据数据查询的范围定位满足条件的数据。在此基础上,Hadoop+还对数据连接、数据布局方面进行了优化。 HadoopDB 在Hadoop 和 Hive上进行了修改,完成了由SQL语句生成MapReduce作业和作业中每个任务执行的SQL语句的过程。在查询时,HadoopDB将数据导入到数据库中,利用数据库中的索引及查询优化机制提高查询性能。,基于数据索引的连接,CoHadoop通过改变Hadoop的副本放置策略来提高 MapReduce 框架处理数据连接性能。CoHadoop 为每个文件增加 Locator 字段来标识其他存储位置,具有相同Locator信息的文件将被尽量组织在相同的数据节点上。在Master节点上维护一个Locator的Hash表,用来存储每个文件的存储位置,这样在进行两表连接运算时,需要连接的两表数据在同一节点上的概率非常高,可以有效减少数据混洗的代价。然而,CoHadoop需要预先得到需要连接运算的各个表大致的相关分布情况,不具有普遍适应性。 Tenzing系统可以用来进行数据连接的优化。Tenzing 是一个异构的系统,其后台融合了ColumnIO、BigTable、GFS、MySQL 数据库等系统。Tenzing 可以在这些系统上进行 SQL 操作,并且可以对底层数据进行数据过滤和数据索引,以提高查询效率。 多表连接系统Llama是基于垂直分组的。Llama导入数据表时会建立包含所有列并按主键排序的基本垂直分组。在连接操作时,Llama根据需要建立包含部分列并按某一列排序的辅助垂直分组,以及为每个外键建立包含该外键与主键并按外键排序的PF垂直分组。Llama将多表连接查询分解为无数据耦合的多个子查询,在Map阶段利用排序好的垂直分组进行子查询的连接操作,在Reduce阶段对子查询结果进行合并完成连接操作。Llama利用类似于 Map-Join-Reduce框架的技术以减少MapReduce 作业数。,连接技术简介,基于传统 MapReduce 的连接,基于数据索引的连接,基于改进 MapReduce 的连接,基于改进 MapReduce 的连接,使用传统MapReduce处理连接查询时,经常需要多个MapReduce作业,并且需要产生大量的中间结果。另外,待连接的数据源往往是异构的,在使用MapReduce 进行连接操作时,需要进行同构化的处理。为了解决这些问题,一些学者对MapReduce框架进行了扩展,具有代表性的有Map-Reduce-Merge、Map-Join-Reduce 与 ComMapReduce 框架。,Map-Reduce-Merge框架,welcome to use these PowerPoint templates, New Content design, 10 years experience,Map-Reduce-Merge框架是在MapReduce框架上增加Merge阶段。当两组MapReduce任务完成时,协调者节点会利用一个merge 函数将两组 MapReduce 结果进行合并。利用Map-Reduce-Merge 这种新的编程框架,可以方便地实现关系数据库中的连接及笛卡儿积操作。对于map、reduce、merge 操作,用户都可以实现自定义的逻辑,因此Map-Reduce-Merge框架比MapReduce框架更具表达力。为了进一步提高Map-Reduce-Merge连接查询效率,可以使用MapReduce作业建立索引的方法,可以有效地在Map-Reduce-Merge框架上进行数据剪枝。针对半连接中对数据倾斜处理的不足,以及分布式处理方法中数据传输量较大等问题,在Map-Reduce-Merge架构的基础上,进一步提出了半连接的处理方案,并通过使用分布式直方图等技术来协助处理,从而降低了I/O消耗和网络传

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论