The invention discloses a method and device for repairing a data shuffling memory overflow, involving large data processing field, in order to solve the data shuffling, due to a number of key records that hold special memory, and the invention of memory overflow problem. The method of the invention comprises: when the data shuffling memory overflow, find the target key records, target key record is the number exceeds the preset threshold value; data distribution on target key records; the non target key records re shuffle, and reduce protocol operation, obtains the preliminary results; we can classify the data distribution processing results and preliminary results, and reduce operation, to obtain the final processing results. The invention is suitable for application in the Spark field of large data processing.
【技术实现步骤摘要】
本专利技术涉及大数据处理领域,尤其涉及一种数据洗牌时内存溢出的修复方法及装置。
技术介绍
现今大数据时代下,想要占据领先地位,就需要深挖数据科学领域,走在学术前沿,才能在底层算法和模型方面走在前面,而Spark的这种学术基因,使得它从一开始就在大数据领域建立了一定优势。无论是性能,还是方案的统一性,对比传统的Hadoop,优势都非常明显。然而Spark属于内存计算机制,当进行数据洗牌如GroupByKey操作时,需要按相应Key的值将数据进行分组,并将分组后的数据传送至reduce阶段。在这过程中GroupByKey的算子需要将所有的键值的记录放到单台服务器上,利用服务器的内存资源进行运算。在上述进行GroupByKey的过程中,专利技术人发现:当某个键值出现非常多条的重复记录时,比如有上千万个重复的键值记录a,那么进行单机Reduce计算时,GroupByKey的算子需要将所有的重复的键值记录装载进内存才能运算,当记录数特别多,以至于内存装不下时,便会报出内存溢出的错误。
技术实现思路
本专利技术提供了一种数据洗牌时内存溢出的修复方法及装置,能够解决在数据洗牌时,由于某个键值记录数特别多以至于内存装不下时,报内存溢出的问题。为解决上述技术问题,一方面,本专利技术提供了一种数据洗牌时内存溢出的修复方法,该方法包括:当对数据进行洗牌发生内存溢出时,找出目标键值记录,所述目标键值记录为记录数超过预设阈值的键值记录;对所述目标键值记录进行数据分流处理;将非目标键值记录重新进行洗牌,并做规约reduce操作,获得初步处理结果;将所述数据分流处理的结果与所述初步处理结 ...
【技术保护点】
一种数据洗牌时内存溢出的修复方法,其特征在于,所述方法包括:当对数据进行洗牌发生内存溢出时,找出目标键值记录,所述目标键值记录为记录数超过预设阈值的键值记录;对所述目标键值记录进行数据分流处理;将非目标键值记录重新进行洗牌,并做规约reduce操作,获得初步处理结果;将所述数据分流处理的结果与所述初步处理结果进行叠加,并做reduce操作,获得最终处理结果。
【技术特征摘要】
1.一种数据洗牌时内存溢出的修复方法,其特征在于,所述方法包括:当对数据进行洗牌发生内存溢出时,找出目标键值记录,所述目标键值记录为记录数超过预设阈值的键值记录;对所述目标键值记录进行数据分流处理;将非目标键值记录重新进行洗牌,并做规约reduce操作,获得初步处理结果;将所述数据分流处理的结果与所述初步处理结果进行叠加,并做reduce操作,获得最终处理结果。2.根据权利要求1所述的方法,其特征在于,所述找出目标键值记录,包括:按照重复记录数由多到少排序的顺序,找出前N个键值记录,其中N为大于1的正整数;分别计算所述N个键值记录占用的内存大小;将计算出的所述内存大小分别与最小的单机内存值进行比较;将内存大小超过所述单机内存值的键值记录确定为所述目标键值记录。3.根据权利要求2所述的方法,其特征在于,计算键值记录占用的内存大小,包括:将键值记录的条目数值,记为n_key的形式;计算单行键值记录的内存空间大小,记为s_key的形式,其中所述单行键值记录的内存空间大小包含键值长度和值列的长度的总长度;计算n_key*s_key,获得所述键值记录占用的内存大小。4.根据权利要求1所述的方法,其特征在于,所述找出目标键值记录,包括:找出重复记录数最多的键值记录作为所述目标键值记录。5.根据权利要求4所述的方法,其特征在于,在所述将非目标键值记录重新进行洗牌之后,所述方法进一步包括:若再次发生内存溢出,则从所述非目标键值记录中查找重复记录数最多的键值记录作为次级目标键值记录;将所述次级目标键值记录进行数据分流处理。6.根据权利要求4所述的方法,其特征在于,找出重复记录数最多的键值记录,包括:在数据处理之前,通过...
【专利技术属性】
技术研发人员:洪超,
申请(专利权)人:北京国双科技有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。