- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据库大作业报告;工作简介
3种join(等值连接)实现方式
动态数据采样+代价估计多表连接优化
3种执行树生成引擎
支持日志文件
支持配置文件
支持结果去重(自然连接)和不去重(笛卡尔积连接)
自动生成测试文件
2000+行代码;;假设和前提II
假设hadoop的任务执行都是串行的,不存在并行调度或是流水线并发调度的情况
在单机伪分布式环境中的hadoop任务执行流程符合上述假设
该假设主要是为了简化hadoop任务的代价分析;Join方法
共实现了以下3种join方法:
基本连接(normal join)
复制连接(copy join)
半连接(semi join)
下面首先对三种方法做简要介绍;普通连接(normal join)
Map端唯一的工作是给数据打标记
Reduce端进行join操作(又称为reduce端的连接)
缺点:网络传输量大,没有任何优化,效率低下
优点:可以认为没有内存限制(如果这种join方法因为内存不足而无法执行,那么其他join方法自然也不行);复制连接(copy join)
使用hadoop的distributedcache,在连接开始之前将较小的表发送至每一个map端
Map端可以完成join过程(又称为map端连接)
Reduce端的唯一工作是去重
缺点:内存限制高,要求小表能放进内存buffer
优点:map端连接,极大减少网络传输量,效率最高;半连接(semi join)
借用半连接的思想实现等值连接
使用hadoop的distributedcache,在连接开始之前将小表的key发送给每个mapper(实际中压缩为bloom filter)
Map端利用bloom filter过滤掉不可能出现在结果中的数据,极大减少了网络传输量
Reduce端执行join操作并去重
缺点:预处理过程多,启动延迟大
优点:利用bloom filter过滤数据,极大减少了网络传输量,效率较高;数据采样
在连接前先对数据随机采样,获取统计信息,使代价模型能够更加精确地估计出连接代价
数据采样百分比可以在配置文件中按需设定
采样信息包括:;?;代价模型
在hadoop任务串行化执行的假设下,任意时刻最多有一个join任务在执行,可以认为这个join任务独占了系统资源。因此在硬件资源许可的情况下应该尽量选择效率高的join方法
复制连接要求小表要能放进内存buffer
半连接要求bloom filter要能放进内存buffer(通常情况下都能满足)
基本连接对内存大小没有要求
效率:复制连接半连接基本连接
下面对3种join方法的代价进行简单分析,假设R表和S表做连接得到T表;普通连接的代价估计;复制连接的代价估计
假设有n个mapper,且S表很小;半连接的代价估计
Semijoin分为2个mapreduce任务
假设由S表产生bloom filter,且忽略bloom filter的代价;代价模型
当任意join任务的join方法被确定后,可以使用搜索、贪心、动态规划等技术确定多表连接的调度方案
我们实现了3种调度引擎:
Na?ve,从左到右顺序连接,即没有任何优化的调度方案,可作为benchmark。空间复杂度为O(1)
Greedy,类似huffman编码的思想,每次挑选代价最小的表做join。空间复杂度为O(n)
DP,用动态规划方法找出最优的调度方案。空间复杂度为O(n^3);多表连接执行流程
采样数据
选择join方法,估计代价
使用贪心法或动态规划方法生成执行树
执行mapreduce任务;具体实现
这里不对代码细节做分析,仅展示基本的包结构;测试和分析
在测试和分析之前,首先对测试数据进行一些简要说明
为了方便讨论,这里先给出有关测试数据的3个概念:
重合度(coincide)
核心长度(core size)
重复度(duplicate)
;?;?;?;产生测试数据恰好是join的逆过程,首先产生join结果,然后将其拆分
可以看出,这种方法产生的表的核心长度(core size)都相同;表的重合度(coincide)、核心长度(core size)和重复度(duplicate)这三个参数大体上反映了真实环境中的数据特征,而且直接影响到join操作的效率和join的结果表的大小
通常情况下,核心长度这个参数反映了join结果表的大小,而重合度越高,说明表的“干货”比例越高,“水分”越少,如果重复度大于1,则join操作会使表的体积呈指数级膨胀
例如:
如果指定表R的core size=1KB,coincide=20,则产生出来的表R的实际大小为1/0.2=5KB
如果指定表S的core size=1KB,coincide=50,则产生出来的表S的实际大小为1/0.5=2KB
如果表R的重复
您可能关注的文档
最近下载
- 绿色工厂培训课件.pptx VIP
- 8+新能源项目预收购(转让)协议.docx VIP
- SL∕T 617-2021 水利水电工程项目建议书编制规程.pdf
- 2025年高考化学河北卷及答案(新课标卷).docx VIP
- 天津《温拌沥青混合料超薄罩面技术规程》DBT 29-210-2022.pdf
- 2010年考研英语二真题答案及解析.pdf VIP
- 2024浙江嘉兴市海盐县交通投资集团有限公司第二轮招聘12人笔试模拟试题及答案解析.docx VIP
- 消毒剂消毒效果及储存效期验证方案.docx VIP
- 电工仪表及测量第一章 测量与电工仪表的基本知识.ppt VIP
- 浙江省计算机二级办公软件高级应用技术真题.doc VIP
文档评论(0)