基于MapReduce的Join算法优化

Slides:



Advertisements
Similar presentations
模板的使用 教育学 江西教育学院教育系 冯芳 2012 - 10. 第二章 教育学的产生和发展 第一节 教育学的研究对象和任务 第二节 教育学的产生与发展 第三节 学习教育学的意义与方法.
Advertisements

大数据基础技术和应用. 大纲 大数据概述 大数据基础技术 工程技术 策略技术 典型应用 我们处于数据爆炸的时代 数据库 文字记录 照片 线下数据信息化 网页数据 用户行为记录 数字图像 互联网 - 移动互联网 设备监控 智能家居 摄像头 传感器 地球上至今总共的数据量: 在 2006 年,个人用户才刚刚迈.
“ 菸 ” 之非福 Part Ⅰ. 你的想法 ─ Q1 :你覺得他很有個性嗎? Q2 :吸菸會增加個人魅力嗎? Q3 :吸菸會讓人感覺成熟?
用 藥 安 全 用 藥 安 全 護 理 師 張 嘉 芬. 前 言 前 言 正確用藥的方法 藥袋上的秘辛 為了減少重大疾病或是醫療處理、 用藥不當的相關事件發生。
阿尔伯特亲王 阿尔伯特亲王纪念碑 维多利亚女王夫妇 维多利亚女王一家 建造水晶宫 水晶宫初建时的照片.
學會摘要 四年級 ( 內容擷取自劍潭國小陳錦蓮和詹珮怡老師的簡報 ). 2 分享綱要 1 1 什麼是摘要 2 3 如何教摘要 實例與實際操作.
我們可以如何應付氾濫 ? 2c 第三組. 目錄 防洪 (1) 防洪 (2) 湖北坪興建三峽主壩簡介 長江三峽水利樞紐工程 三峽工程的利益 (Part1) 三峽工程的利益 (Part2) 三峽工程的弊 (Part1) 三峽工程的弊 (Part2) 總結 組員名單 完.
1 寫作測驗武功秘笈 洪德惠老師 99 年 1 月 18 日. 2 PART1 理論部分 3 寫作測驗的基本能力 1. 能掌握寫作步驟,充實作品內容,精確表達自 己的思想。 2. 能依收集材料立意、選材、安排段落及組織等 步驟行文。 3. 能運用觀察的方法觀察周遭事物,並能寫下重 點。 4. 能適切地遣詞造句,使用正確的標點符號,完.
梦想启航 ——大学生活与职业规划专题讲座.
備審資料與面試準備 高雄醫學大學醫學系 林郁涵.
河北保定外国语学校 高三家长会.
千秋大业在担当 《中国共产党问责条例》解读提纲.
以信息化带动教育现代化,打造教育的“南山质量”
目錄 服務地點 南寮 世光教養院 飛鳳山 長安養老院 尖石國小 內灣 大華停車場 上智國小 二重國中 班級 領隊教師 參與人數 (人次)
个体税收征管政策讲解 浏阳市地方税务局.
封面 2015易驾考最新分享: 科目二考试方法秘诀 文章来源:易驾考官网.
基于行业的 企业技术创新信息保障体系研究 刘 华 博士 中国科学技术信息研究所.
第四讲 1949—1991年的中苏关系 及其经验教训.
大型探索节目《谜》之 感恩.
“鼠标加水泥”的百货公司——武汉中百 朱巧巧 陆嘉怡 田泽宇.
合理控制索道游客流量 确保景区可持续发展 云南丽江玉龙雪山索道 陈加林 二0一五年十一月.
千里挑一的“征途” ——浅谈中国“国考”热.
做好就业与自主创业的准备.
研修4组 学习简报(第3期) 主编:左文玲 2015年2月7日.
第1章第3节 量化研究与质化研究 案例1:关于中学思想政治教师专业发展现状和需求的调查研究
潘集小学英语班 学习简报(第5期) 主编:吴婷 2016年2月28日.
生命停看聽—生命圖書館 萬中選一的祝福 推薦人:彰師附工進修學校 蘇郁惠.
基于Hadoop的Map/Reduce框架研究报告
与领导、下级、同事的 沟通技巧.
潜能宇宙平衡法则 ——启动11.11天地人合新生命工程(分类系统) 凛然智慧(北京)教育咨询有限公司.
回顾与展望:高州经验与广东医改 省卫生计生委、省医改办 黄 飞 2015年7月3日.
失眠的饮食及调理 北京国济中医院
中餐烹調實習Ⅲ 第九章中國菜系介紹 林可薇 製作.
新高考研究介绍 湖北省教育考试院项目研究组.
愛心月課程活動 設計者:洪雪玲老師.
《乡村教师支持计划 年》 解读.
如东中专 学校文化课现状及提升举措的思考
如何打造学习型团队 主讲:詹琼然 选送单位:重庆市长寿区妇幼保健院 0903NX《中国医院内训师高级研修班》学员.
1-3 探究自然的科學方法.
第3讲 时间管理.
数据采集与Hadoop框架 报告人:黄文君 导 师:王华忠 BEA Confidential.
续班指导.
高等教育出版社 工作汇报 化学化工分社 翟怡.
******班班级学习简报(第*期) 主编:*** ****年**月**日.
姓名:梁晓莹 职务:安徽省旅游局安全办主任(高级经济师) 中国旅游研究院(华侨大学)旅游安全研究基地行业顾问 经历: 自1987年就职于安徽省旅游局 自2009年主持安全办工作 曾主编《旅游安全宣传手册——暨安徽旅游安全格言警句精选》、《安徽旅游安全》、《安徽旅游发展大事记》等 承办过“安徽省旅游安全演讲征文大赛”及“旅游安全调研成果奖”评选等工作.
本活動 想解決的問題是……. 本活動 想解決的問題是…… 130最少要加上多少才能被8整除? 130最少要減去多少才能被8整除? 《除法定理》 被乘數=乘數 x 商 + 餘數.
股市不傳之秘 甘氏矩陣圖/價格推算 簡介、基礎學習步驟 1、學習觀念 2、基礎看圖法 A.大數推算 B.基礎角度線推算.
發展東華特色課程 期末成果發表 呂進瑞 國立東華大學財金系.
雞蛋這樣孵出小雞的 動物的生殖 Part I.
前不久看到了这样一则报道:某个大学校园里,一个大学生出寝室要给室友留一张字条,告诉他钥匙放在哪里。可是“钥匙”两个字他不会写,就问了其他寝室的同学,问了好几个,谁也不会写,没办法,只好用“KEY”来代替了。 请大家就此事发表一下自己看法。
一种基于Hadoop的视频大数据分布式解码方法 冯强
第三章 人类社会及其发展规律.
Introduction to MapReduce
利用共同供應契約 辦理大量訂購流程說明.
CHAPTER 6 認識MapReduce.
Cloud Computing MapReduce进阶.
Skew Join相关论文 报告人:蔡珉星 厦大数据库实验室
基于大数据的物流资源整合 福建师范大学协和学院 沈庆琼.
Homework 1(上交时间:10月14号) 倒排索引.
K/3 Cloud V6.0产品培训 -- 业务监控 K/3 Cloud 产品部
K/3 Cloud V6.1产品培训 -- 业务监控 K/3 Cloud 产品部
基于云计算及数据挖掘技术的海量数据处理研究
公务卡日常管理篇 办卡激活/遗失补办/ 停用销卡/额度调整 财务处 2016年.
第三章 世界文明的蛻變與互動 第一節 歐洲社會的蛻變 第二節 世界文明的交匯 第三節 亞洲大帝國的發展 1.
红利、年金、满期金自动转入聚宝盆,收益有保底,升值空间更大
兒童及少年保護、 家庭暴力及性侵害事件、 高風險家庭 宣導與通報
——向刑事案件被告人家属调查取证的伦理性讨论
基于位置感知和负载均衡 MapReduce的Join算法优化 汇报人:黄梓铭 厦大数据库实验室
统计学 第7章 参数估计 教师:张文利.
厦门大学数据库实验室 论文阅读成果和创新点 罗道文
Presentation transcript:

基于MapReduce的Join算法优化 数据倾斜情况下 基于MapReduce的Join算法优化 报告人:蔡珉星 厦大数据库实验室 2014-08-16

目录 遇到的问题 优化思路 - 改进Partition Partition在两表连接中的改进 LEEN算法

优化思路 - 改进Partition Part 1

哈希实际上是一种针对键的分组均衡分配,不能保证数据量均衡分配 Partition MapReduce中的Partition: 在Map端输出时,需要对key进行分区,来决定输出数据传输到哪个reducer上进行处理。 默认的partition是通过哈希操作来决定分配到哪个reducer。 哈希Partition的局限 哈希在数据均衡的情况下,可以很好的将数据平均到各个Reducer上,但在数据倾斜情况下,会导致某几个Key的值大量集聚在单个Reducer上。 哈希实际上是一种针对键的分组均衡分配,不能保证数据量均衡分配

Join算法优化思路 Reduce-side Join: Map-side Join(复制连接、半连接)对数据集要求较高,一般情况下Join操作是采用Reduce-side Join - 重分区连接:将键相同的数据分到同一个reducer,再进行Join。 优化重分区连接: 区分大小数据集,将小数据集读取到内存中,再用小数据集来遍历大数据集。 优化重分区连接的精髓就在于Reduce端用小数据集遍历大数据集,这部分已经没有什么改进空间。哪里还可以再改进? --> Partition: 优化重分区连接采用Hash parition不能保证数据量均衡分配。

优化重分区连接采用Hash parition,不能保证数据量均衡分配

Partition在两表连接中的改进 Part 2

两表连接中的改进 数据实例: 即便可以采用优化重分区,但在Partition时已经造成了数据分配倾斜! 3个Data节点 每个节点输出75个键值 81 -> 36% 103 -> 46% 41 -> 18% 即便可以采用优化重分区,但在Partition时已经造成了数据分配倾斜!

两表连接中的改进 均衡Partition 论文《LEEN LocalityFairness- Aware Key Partitioning for MapReduce in the Cloud》中的算法LEEN给出的Partition: 74 -> 33% 77 -> 34% 获知键值的分布

两表连接中的改进 获知键值的分布 – 采样 Partition方式: 简单范围分区 在执行Reducer-side Join之前,先运行一个Job,统计数据分布情况。 采样开销应尽可能少,同时保证准确性。 Partition方式: 简单范围分区 Map端采样:每个Mapper随机取x个Sample,有n个Mapper。 Reduce端统计分布:只需要一个Reducer,此时n*x个Sample已是排好序的。

两表连接中的改进 Partition方式: 简单范围分区(续) 若执行的Join有N个Reducer,可以根据步长 n*x/N 获得一个分区序列。 例如: Samples: [1, 3, 3, 4, 5, 5, 6, 6, 6, 6, 8, 9, 9, 10, 10], 5个Reducer,步进3 分区序列: [3, 5, 6, 9] Join Partition: key≤3 3<key≤5 5<key≤6 6<key≤9 9<key [1,3,3] [4,5,5] [6,6,6,6] [8,9,9] [10,10] 倾斜情况: Samples: [1, 3, 3, 4, 5, 5, 6, 6, 6, 6, 6, 6, 9, 10, 10], 5个Reducer,步进3 分区序列: [3, 5, 6, 6] -> 键为6的有两个可选Reducer 解决: build relation: 随机选择一个可选Reducer probe relation: 需发送到每个可选Reducer R join S -> R: probe, S: build?

+ 两表连接中的改进 倾斜键存在大小表的情况 Samples: [1, 3, 3, 4, 5, 5, 6, 6, 6, 6, 6, 6, 9, 10, 10], 5个Reducer,步进3 分区序列: [3, 5, 6, 6] -> 键为6的有两个可选Reducer 3 和 4 R join S,对于键6,若 R.6 << S.6 可将所有的R.6传输到3和4上,然后S.6可以随机分配到3或4上 1000个A + 500个A

两表连接中的改进 进一步的改进:虚拟范围分区 实际是N个Reducer,但假定分成 α*N 个分区(α为整数)。 例如 Samples: [1, 3, 4, 4, 5, 5, 6, 6, 6, 6, 6, 6, 9, 10, 10, 11, 11, 11, 15, 16], 5个Reducer Join Partition: [1,3,4,4], [5,5,6,6], [6,6,6,6], [9,10,10,11,11,11], [15,16] α = 2,则分成2*5=10个分区 Samples: [1, 3, 3, 4, 5, 5, 6, 6, 6, 6, 6, 6, 9, 10, 10, 11, 11, 11, 15, 16], 10个Reducer Join Partition: [1,3,3], [4], [5,5], [6,6], [6,6], [6,6], [9,10,10], [11], [11,11], [15,16] 采用虚拟范围分区,数据分配更加均衡 处理方式: 轮叫调度 或 当某一节点完成时,将下一剩余任务分配给该节点 论文的实验结果表明虚拟范围分区优于简单范围分区

Reduce阶段须在数据传输、合并完成后才能开始 还有什么地方可以再优化? Reduce阶段须在数据传输、合并完成后才能开始 能否减少网络传输?

LEEN算法 Part 2

LEEN算法 针对Copy Phase的一些考虑 map和reduce任务可在同一个节点上,copy阶段,节点fetch的数据包括自身节点上的数据(不需要网络传输)和其他节点上的数据(需要网络传输)。 若为了降低网络传输,应尽量fetch自身节点的数据。但以自身数据量作为Partition依据,可能导致reduce端数据分配不均,如何平衡?

Partition后,本地数据所占的比例 网络共需要传输的数据量: Total Map output × (1 -Locality) LEEN算法 Partition后,本地数据所占的比例 数据实例: 3个Data节点 每个节点输出75个键值 22 -> 29% 30 -> 40% 17 -> 22% 网络共需要传输的数据量: Total Map output × (1 -Locality) 81*(1-29%) + 103*(1-40%) + 41*(1-22%) = 151 151/225 = 67% 81 -> 36% 103 -> 46% 41 -> 18%

LEEN算法 LEEN:异步map和reduce模式 Hadoop中的计算和数据传输是会重叠的(如一个节点上运行多个map任务,一个map任务结束后,就会进行数据传输)。 LEEN为了获知所有中间数值的分布情况,采用了异步map和reduce模式(先全部执行完map再执行reduce)。 map阶段对每个中间键的结果进行缓存,而不是直接发送到相应的reducer。 这样当map结束时,就有了所有的键分布信息(出现次数等),这些键将根据LEEN算法来进行分配(到reducer)。

LEEN算法 LEEN算法:平衡Locality和Fairness 其他思路: Fairness(≥0): 各个reduce分配的数据量的差异,越小越好; Locality(≤1): 各个reduce分配的数据中,来自本地节点的数据,越大越好; LEEN算法 -> 启发式算法,目标:(Fairness/Locality)的最小值。 其他思路: 因素: Fairness、Locality哪个对Job结果影响更大?(0.2/0.4与0.4/0.8哪个更优?) 体现: 集群的计算能力与网络能力。 通用表达式: T = DATA*diff_time_per_data*Fairness + DATA*trans_time_per_data*(1-Locality) 目标: diff_time_per_data*Fairness + trans_time_per_data*(1-Locality) 最小

LEEN算法 实验结果

总结 总结: 优化的出发点是实现Reduce的负载均衡; 优化的体现是Job完成的总时间; 优化也可以从Hadoop的流程上考虑; Partition Copy Phase

遇到的问题 Thanks. 22