[发明专利]一种数据倾斜处理方法、装置、终端设备及存储介质在审
申请号: | 202010728649.0 | 申请日: | 2020-07-24 |
公开(公告)号: | CN112000467A | 公开(公告)日: | 2020-11-27 |
发明(设计)人: | 魏文国;黄子纯;廖信海;谢桂园 | 申请(专利权)人: | 广东技术师范大学;广东外语外贸大学 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 广州三环专利商标代理有限公司 44202 | 代理人: | 郭浩辉;麦小婵 |
地址: | 510665 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据 倾斜 处理 方法 装置 终端设备 存储 介质 | ||
本发明公开了一种数据倾斜处理方法、装置、终端设备及存储介质,包括基于预设的抽样算法,对数据进行抽样以获得等概率的样本数据,并通过数据的累加计算获得每一value所占空间的大小;利用数据倾斜检测模型将所述样本数据划分为倾斜数据、非倾斜数据;将所述非倾斜数据分配至预设的Hash分区,并基于动态分配算法将所述倾斜数据动态分配到各个存储分区中,以均衡Spark负载。本发明实施例通过增加一个变量权重用来预测分区大小,对数据进行抽样后利用数据倾斜检测模型将数据分类为倾斜数据和非倾斜数据,利用非倾斜数据预测Reduce分区的大小,并将倾斜数据均衡分配到各个分区中去,能够使Spark负载更均衡。
技术领域
本发明涉及计算机应用技术领域,尤其是涉及一种数据倾斜处理方法。
背景技术
随着大数据时代的到来,各种网络技术的兴起,使得信息数据急剧膨胀。传统的处理和存储系统已经难以应对海量数据,而对于目前流行的Hadoop和Spark等大数据分析平台,数据倾斜对其性能造成了严重的影响。目前解决数据倾斜问题大部分都是基于Hadoop平台的研究,对于Spark的数据倾斜问题研究相对较少。在Spark中,将Shuffle之前的阶段称为Map阶段,之后的阶段称为Reduce阶段。然而,默认的Spark分区算法在数据分布不均匀时,在执行Shuffle操作后就会出现数据倾斜现象。现有的分区算法思想是将重载的任务分布到额外拆分或者合并的分区上,而这些额外的操作反过来又阻碍了系统的性能。
发明内容
本发明提供一种数据倾斜处理方法,以解决现有的分区算法出现额外操作阻碍系统性能的技术问题,通过增加一个变量权重用来预测分区大小,对数据进行抽样后利用数据倾斜检测模型将数据分类为倾斜数据和非倾斜数据,利用非倾斜数据预测Reduce分区的大小,并将倾斜数据均衡分配到各个分区中去,能够使Spark负载更均衡。
为了解决上述技术问题,第一方面,本发明实施例提供了一种数据倾斜处理方法,包括以下步骤:
基于预设的抽样算法,对数据进行抽样以获得等概率的样本数据,并通过数据的累加计算获得每一value所占空间的大小;
利用数据倾斜检测模型将所述样本数据划分为倾斜数据、非倾斜数据;
将所述非倾斜数据分配至预设的Hash分区,并基于动态分配算法将所述倾斜数据动态分配到各个存储分区中,以均衡Spark负载。
在本发明的其中一种实施例中,所述预设的抽样算法,包括:
从总量为A的中间数据中抽取K个样本数据;其中,K小于A;
将抽取出的第1个至第K个所述样本数据放入样本数组中;
依次遍历所述中间数据中的第K+1个数据,以使所述样本数组中的第x个元素的选中概率为k/x,等概率1/k地替换所述样本数组中的元素。
在本发明的其中一种实施例中,所述基于动态分配算法将所述倾斜数据动态分配到各个存储分区中,具体为:
在利用所述数据倾斜检测模型识别出所述倾斜数据之后,将所述倾斜数据分配至map任务;
通过所述map任务进程拆分并生成中间输出数据;
基于所述动态分配算法将所述中间输出数据分配到至少一个reduce任务中。
在本发明的其中一种实施例中,所述动态分配算法,用于将所述数据倾斜检测模块检测到的所述倾斜数据分配给当前负载最小的Reducer。
将所述存储分区中的key按降序排序,并将最大的key标记为1,其余的key标记为0。
在本发明的其中一种实施例中,所述利用数据倾斜检测模型将所述样本数据划分为倾斜数据、非倾斜数据,具体为:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广东技术师范大学;广东外语外贸大学,未经广东技术师范大学;广东外语外贸大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010728649.0/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置