[发明专利]一种解决Spark数据倾斜方法及系统在审
申请号: | 201710379913.2 | 申请日: | 2017-05-25 |
公开(公告)号: | CN107220123A | 公开(公告)日: | 2017-09-29 |
发明(设计)人: | 赵波 | 申请(专利权)人: | 郑州云海信息技术有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 北京集佳知识产权代理有限公司11227 | 代理人: | 罗满 |
地址: | 450018 河南省郑州市*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 解决 spark 数据 倾斜 方法 系统 | ||
技术领域
本发明涉及大数据计算领域,特别涉及一种解决Spark数据倾斜方法及系统。
背景技术
Apache Spark是一个快速高效的集群计算系统。Spark很好地利用了Hadoop和Mesos的基础设施。借Hadoop之势与Hadoop无缝结合,但是相比于Hadoop MapReduce具有更高的计算速度,同时Spark支持内存计算、多迭代批量处理、即席查询、流处理和图计算等多种范式。
对Spark/Hadoop这样的大数据系统来讲,数据量大并不可怕,可怕的是数据倾斜。数据倾斜指的是,并行处理的数据集中,某一部分(如Spark或Kafka的一个Partition)的数据显著多于其它部分,从而使得该部分的处理速度成为整个数据集处理的瓶颈,例如,绝大多数task执行得都非常快,但个别task执行极慢,如,总共有1000个task,997个task都在1分钟之内执行完了,但是剩余两三个task却要一两个小时。
因此,如何解决Spark中数据倾斜,成为了难点。
发明内容
有鉴于此,本发明的目的在于提供一种解决Spark数据倾斜方法及系统,以解决Spark中数据倾斜,提高运行速度。其具体方案如下:
一种解决Spark数据倾斜方法,包括:
将超过预设数据量的数据集按照预设分割方法进行分割处理,得到数据块集;
将所述数据块集中的数据块分配给Redtask集中满足预设条件的Redtask,得到中间结果集;
将中间结果集分配给所述Redtask集中的一个Redtask中进行汇总处理,得到处理结果。
可选的,所述将超过预设数据量的数据集按照预设分割方法进行分割处理的过程,包括:
将超过所述预设数据量的所述数据集按照预设数据块数据量进行分割处理。
可选的,所述将超过预设数据量的数据集按照预设分割方法进行分割处理的过程,包括:
将超过所述预设数据量的所述数据集按照预设的数据块数量进行分割处理。
可选的,所述将超过预设数据量的数据集按照预设分割方法进行分割处理的过程,包括:
将超过所述预设数据量的所述数据集按照满足所述预设条件的Redtask数量进行分割处理。
可选的,所述将所述数据块集中的数据块分配给Redtask集中满足预设条件的Redtask的过程,包括:
将所述数据块集中的数据块平均分配给Redtask集中满足所述预设条件的Redtask。
可选的,所述汇总处理的过程,包括:
利用中间结果集中每个中间结果的key,将具有相同key的中间结果进行汇总。
本发明还相应公开了一种解决Spark数据倾斜系统,包括:
分割模块,用于将超过预设数据量的数据集按照预设分割方法进行分割处理,得到数据块集;
分配模块,用于将所述数据块集中的数据块分配给Redtask集中满足预设条件的Redtask,得到中间结果集;
汇总模块,用于将中间结果集分配给所述Redtask集中的一个Redtask中进行汇总处理,得到处理结果。
可选的,所述分割模块,具体用于将超过所述预设数据量的所述数据集按照预设数据块数据量进行分割处理。
可选的,所述分配模块,具体用于将所述数据块集中的数据块平均分配给Redtask集中满足所述预设条件的Redtask,得到中间结果集。
可选的,所述汇总模块,具体用于将中间结果集分配给所述Redtask集中的一个Redtask中,利用中间结果集中每个中间结果的key,将具有相同key的中间结果进行汇总,得到处理结果。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于郑州云海信息技术有限公司,未经郑州云海信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710379913.2/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置