[发明专利]一种解决数据倾斜的方法及装置有效
申请号: | 201510405167.0 | 申请日: | 2015-07-09 |
公开(公告)号: | CN105095413B | 公开(公告)日: | 2018-11-23 |
发明(设计)人: | 张军;刘志祖;牟一超 | 申请(专利权)人: | 北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 中原信达知识产权代理有限责任公司 11219 | 代理人: | 张一军;姜劲 |
地址: | 100080 北京市海淀区杏石口路6*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 解决 数据 倾斜 方法 装置 | ||
本发明提供一种解决数据倾斜的方法及装置,通过引入倾斜分析统计工具及表流式倾斜处理工具,避免了数据倾斜导致的任务失败和超时,使得海量倾斜数据的关联任务能快速完成,从而保障了数据仓库的高性能和稳定性。本发明的一种解决数据倾斜的方法包括:由数据倾斜统计模块使用调度程序分别统计出参与关联的第一关联表和第二关联表在关联字段上的第一统计信息和第二统计信息;由表流式倾斜处理模块根据待关联的倾斜字段,在map端对第一关联表和第二关联表的数据进行处理,以分别产生关联伪列字段;由倾斜数据关联模块在reduce端根据关联伪列字段对第一关联表和第二关联表进行关联。
技术领域
本发明涉及计算机技术领域,特别地涉及一种解决数据倾斜的方法及装置。
背景技术
自互联网大爆发以来,面对日益增长的海量数据,用以支撑主流搜索引擎公司、电子商务、社交网站的传统数据仓库系统早已不堪重负了,而构建于Hadoop集群之上的Hive的出现恰逢其时,已成为实现大数据时代分布式数据仓库的福音。数据关联是关系数据库功能的基本操作,是任何资源在万维网上发布的一种方式。基于分布式运算(mapreduce)的数据仓库Hive也支持在海量数据集上进行数据关联操作,通常Hive进行数据仓库(DW)数据关联时,都是由两个或多个海量数据集进行。例如电子商务常见的数据模式为:将数十亿的用户流量和数亿的商品、千万级订单数据集进行关联运算来产生用户、商品搜索推荐结果和电子邮箱相关联的营销数据。此类数据关联操作的特点是海量数据,同时数据分布不均匀,存在热点数据。
基于Hive的海量数据关联的底层实现是由mapreduce提供的,即在Map(映射)阶段根据数据的大小划分为多个分布式计算任务,尽可能利用数据本地化处理速度快的优势在本地进行运算,然后进行分区(即根据相同的关键字的数据进入同一数据处理列),最后在reduce(归约)阶段进行合并关联运算。
Mapreduce在进行数据关联时,可在map阶段和reduce阶段分别进行。map端聚合的适用条件是关联方有一个数据集足够小(一般不超过25MB)可以放在分布式缓存里,而reduce阶段关联的场景是关联成员的数据集都很大,无法缓存。故而对于海量数据,无法进行map端关联,只能在reduce阶段进行关联。然而,此时数据关联的瓶颈点已不在于数据规模的大小,而在于数据分布的不均匀。当mapreduce在执行程序进行数据关联时,大部分reduce节点已执行完毕,但是有一个或者几个reduce节点运行很慢,导致整个程序的执行时间很长,这是因为某一个关联关键字的数据条数比其他关联关键字多很多(有时是百倍或者千倍之多),那么这个关联关键字所在的reduce节点所处理的数据量比其他节点就大很多,从而导致某一个或者几个节点迟迟运行不完,此称之为数据倾斜。解决海量数据关联的关键点就是解决数据倾斜问题。
目前Hive处理数据关联时数据倾斜的问题大多采用以下方法:
1.创建倾斜表法:
特点就是在建表时列出表中单列或多列的高倾斜值,Hive会将这些数据自动单独存储,在执行关联时,第一次查询处理非倾斜的数据,第二次查询将处理高倾斜的数据,如果其中高倾斜值的小表数据适合在内存缓存,这样效率会更高,在map端就进行了关联,最后对两部分查询结果进行合并。
2.配置参数法:
在Hive执行数据处理时预先配置参数,第一个mapreduce任务中,Map的输出结果集合会随机分布到reduce中,每个reduce做部分关联操作,并输出结果,这样处理的结果是相同分组的同一关键字的数据有可能被分发到不同的reduce中,从而达到负载均衡的目的;第二个mapreduce任务再根据第一个mapreduce任务预处理的数据结果按照分组的关键字分布到reduce中(这个过程可以保证相同分组的同一关键字的数据被分布到同一个reduce中),最后完成最终的聚合操作。这是最简单的方式。
3.Mapjoin:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司,未经北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510405167.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:搜索推荐方法和装置
- 下一篇:基于POI数据的连锁品牌采集方法及装置
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置