A Spark oriented parallel computing framework for iterative data partition equilibrium method: first, big data will be divided into fine grained coarse grained Block FG Block FG Block, create the differential area and differential area index based on; secondly, according to the number of Reducer to create the same amount of Bucket; third, determine the iterative time, data partition and the number of iterative partitioning criteria; fourth, records of local and global data distribution of each Bucket; fifth, according to the data distribution and the equilibrium partitioning algorithm will choose the micro partitions assigned to each Bucket; finally, the data transmission has been assigned to Reducer Bucket in the end. The invention provides a new data partitioning method for Spark framework, which reduces data skew in the process of large data processing, and improves the overall performance of large data processing in Spark parallel computing framework.
【技术实现步骤摘要】
一种面向Spark并行计算框架的迭代式数据均衡优化方法
本专利技术涉及大数据处理和高性能计算领域,特别是提出了一种面向Spark并行计算框架的迭代式数据均衡优化方法。
技术介绍
MapReduce是Google公司于2004年提出的一种用于大数据处理的并行计算模型,通过在大量廉价的机群节点同时运行多个任务并行地处理海量数据,提高了处理数据的性能,在过去十多年得到了迅速的发展和广泛应用。Spark是一个基于MapReduce的并行计算框架,于2009年由美国加州大学伯克利分校的AMPLab实验室开发,具有MapReduce的优点,并将任务计算中间结果保存到内存中,减少了磁盘读写开销,提高了大数据处理的性能,成为当前构建大数据处理平台的主流框架。大数据处理过程中的数据不均衡,也称为数据倾斜,是导致Spark框架整体性能降低的重要瓶颈。LinJ(Proceedingsofthe7thWorkshoponLarge-ScaleDistributedSystemsforInformationRetrieval,2009)研究实验结果表明,当采用目前默认的Hash分区方法时, ...
【技术保护点】
一种面向Spark并行计算框架的迭代式数据均衡优化方法,包括以下步骤:(1)创建微分区和微分区索引(1.1)创建细粒度数据块在Spark框架中,默认的数据处理单位是粗粒度数据块Block,如其大小一般设置为128M,对Block进一步细分,得到多个细粒度数据块(Fine‑grained block,FG‑Block),对这些FG‑Block进行迭代处理;(1.2)创建微分区在Mapper阶段,对FG‑Block转换处理之后得到的元组存储到缓存Buffer中,合并Key值相同的元组,合并之后的元组集合称为微分区,这是迭代分区的基本单位;(1.3)创建微分区索引根据微分区的Ke ...
【技术特征摘要】
1.一种面向Spark并行计算框架的迭代式数据均衡优化方法,包括以下步骤:(1)创建微分区和微分区索引(1.1)创建细粒度数据块在Spark框架中,默认的数据处理单位是粗粒度数据块Block,如其大小一般设置为128M,对Block进一步细分,得到多个细粒度数据块(Fine-grainedblock,FG-Block),对这些FG-Block进行迭代处理;(1.2)创建微分区在Mapper阶段,对FG-Block转换处理之后得到的元组存储到缓存Buffer中,合并Key值相同的元组,合并之后的元组集合称为微分区,这是迭代分区的基本单位;(1.3)创建微分区索引根据微分区的Key值创建索引,索引是用于记录微分区将要被分配到哪个Reducer上的结构;(1.4)设计Bucket结构根据Reducer的数量创建出等量的Bucket,Reducer与Bucket具有一对一的依赖关系,将Bucket从逻辑上划分为多个Segment,每个Segment只能够存储一个微分区,将每次迭代得到的元组集合称为微分区迭代块,不同迭代块存储在Segment的Slot中,而多个微分区可以被分配到相同的Reducer上;(1.5)创建微分区向量将每次微分区的元组数量称为元组因子,在索引与元组因子、分配情况之间建立关联,创建一个记录索引及其元组因子、分配情况的微分区向量α:α=(t1,t2,t3,…,tn),其中ti=(index,factor,bno,sno)(i∈[1,n]),index为索引值,factor为元组因子,bno为Bucket的编号,sno为Segment的段号;(2)确定迭代式数据分区的时机与数量当Mapper对FG-Chunk处理完成,创建得到微分区的索引之后,开始进行本次迭代的数据分配,将分区的数量设置为Bucket的数量;当某一个微分区的元组因子远大于其他微分区的元组因子时,将不对其进行拆分处理,该情况下通过另选属性作为Key进行分区处理;(3)确定迭代式数据分区的准则当微分区数量较多时,优先选择元组因子大的微分区,目的是将元组数量较多的微分区尽快的传输到依赖的Reducer上,并让元组数量较少的微分区稍后传输,使得有效计算与数据传输能重叠执行,并有助于减少Bucket占用的存储空间;按照以上方法,将根据元组...
【专利技术属性】
技术研发人员:张元鸣,蒋建波,黄浪游,沈志鹏,项倩红,肖刚,陆佳炜,高飞,
申请(专利权)人:浙江工业大学,
类型:发明
国别省市:浙江,33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。