一种基于Spark算子的序列化存储优化方法技术

技术编号:15690808 阅读:41 留言:0更新日期:2017-06-24 03:30
本发明专利技术公开了一种基于Spark算子的序列化存储优化方法,包括以下步骤:S1)使用ganglia检测应用执行过程中机器的内存使用量,如果检测到当前内存值正常,则继续监测,若检测到已达到指定阈值,则执行步骤S2);S2)计算RDD的执行时间

A serialization memory optimization method based on Spark operator

The invention discloses a serialized storage optimization method based on Spark operator, which comprises the following steps: S1) machine implementation process using ganglia detection application memory usage, if the detected current memory is normal, then continue to monitor, if detected has reached the specified threshold, then executing step S2); S2) calculation the execution time of RDD

【技术实现步骤摘要】
一种基于Spark算子的序列化存储优化方法
本专利技术涉及大数据、内存计算领域,更为具体地讲,涉及一种自定义的序列化存储策略。
技术介绍
大数据时代的到来,也引领了大数据处理平台生态圈的不断更新。由于MapReduce框架仅支持Map和Reduce两种操作,迭代计算效率低下,在交互式处理及流式计算环境下具有局限性,于是,一种可同时进行批处理、流式计算、交互式计算的高效分布式计算框架Spark应运而生。该框架采用弹性分布式数据集(RDD)基于缓存进行迭代计算,以提高计算效率。大部分Spark程序都具有“内存计算”的天性,所以集群中的所有资源:CPU、网络带宽或者是内存都有可能成为Spark程序的瓶颈。由于在迭代计算中,要提高计算效率,最好是将数据全部加载进内存,但在大数据计算环境下,必然会有大的数据集存在,且缓存资源有限匮乏的问题,因此,数据集序列化存储成为关键。为了提升缓存利用率,需要在RDD序列化过程中保证选出的RDD对象是后面较少会参与计算的RDD,而让后面需要迭代计算或者多次使用的RDD尽量保留在缓存中,然而,由于在任务调度的过程中,需要根据不同的业务逻辑使用不同的算子去处理所得到的RDD集合,而由于不同算子的内部实现不同,导致的在RDD数据集转换的过程中执行效率不同,而数据集本身的大小也不同,另外,RDD的生命周期即某一RDD数据集的使用次数,也对序列化存储策略的选择起到关键性的作用。因此,RDD序列化的选择会受到算子运行代价、RDD执行时间及RDD跨过的Action数量等因素的影响。在当今大数据时代,大型公司、企事业单位、政府等机构业务系统复杂,数据形式多样化,急需引入新的大数据处理平台处理海量数据,而Spark则是基于内存计算的高效分布式框架,因此其内存称为处理数据速度提升的关键因素,但是由于缓存资源有限,在处理大数据集时仍然需要将部分数据序列化存储到磁盘,影响计算性能,因此合理高效的序列化存储策略,会成为提高基于缓存迭代计算效率亟待解决的问题。
技术实现思路
有鉴于此,本专利技术的目的是提供一种基于Spark算子的序列化存储优化方法。该方法应用于现有的Spark大数据平台上,能够在内存资源有限时使整个应用保持较高的执行效率。本专利技术的目的是通过以下技术方案来实现的,一种基于Spark算子的序列化存储优化方法,包括以下步骤:S1)使用ganglia检测应用执行过程中机器的内存使用量,如果检测到当前内存值正常,则继续监测,若检测到已达到指定阈值,则执行步骤S2);S2)计算RDD的执行时间RDD的执行效率和算子权值Wi;S3)根据RDD的执行时间RDD的执行效率和算子权值Wi得到已排序的RDD序列即序列化候选集合;S4)从序列化候选集合中选择值最小的进行序列化存储;S5)继续步骤1),直到应用执行完毕。进一步,在步骤S2)中,所述执行时间通过公式(1)获得:其中,m表示第i个RDD总共有m个分区,Sij表示第i个RDD的第j个分区的大小,Pmem表示机器的处理能力。进一步,在步骤S2)中,RDD的执行效率通过公式(2)获得:FTij表示分区完成时间,STij表示分区开始时间,Nij表示表示某个RDD的分区数量;EPij表示第i个RDD上所有分区的执行能力。进一步,在步骤S2)中,定义Wi(i=1,2,…,M)表示算子权值,每个算子均有一个权值,根据层次分析法得到算子的时间复杂度和空间复杂度之间的度量关系Cv=f(Ot,Os),算子权重Wi通过以下公式获得:代表算子的时间复杂度,表示算子的空间复杂度,Cv表示时间复杂度和空间复杂度的度量关系。进一步,在步骤S3)中,RDD权值通过公式(5)获得:其中,Size(RDD)表示RDD的大小,Wi表示第i个算子的权值,AN表示算子经过的Action个数,表示第i个RDD的处理时间,k表示校正参数,取值为{10,100,1000,…}。由于采用了上述技术方案,本专利技术具有如下的优点:本专利技术实现在应用执行过程中高效存储有价值的RDD缓存,从而提高内存的使用率。相比与现有的缓存使用方案,本方法应用于现有的Spark大数据平台上,能够在内存资源有限时使整个应用保持较高的执行效率。附图说明为了使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术作进一步的详细描述,其中:图1为本专利技术的方法流程图;图2为本专利技术的一个使用平台示意图;图3为迭代计算的重复过程;图4为内存占用率对比图。具体实施方式以下将结合附图,对本专利技术的优选实施例进行详细的描述;应当理解,优选实施例仅为了说明本专利技术,而不是为了限制本专利技术的保护范围。如图1所示,它是本专利技术的一个使用平台示意图。在集群调度过程中,每个task执行RDD转换的过程中,添加以上序列化存储策略,实时侦测出要处理的RDD是否需要缓存。一种基于Spark算子的序列化存储优化方法,包括以下步骤:S1)使用ganglia检测应用执行过程中机器的内存使用量,如果检测到当前内存值正常,则继续监测,若检测到已达到指定阈值,则执行步骤S2);S2)计算RDD的执行时间RDD的执行效率和算子权值Wi;执行时间和RDD的执行效率的具体计算方法为:用R={RDD1,RDD2,...,RDDn}表示应用所使用的RDD集合,本文中的集群内存分配为1G,2G,4G,因此本专利技术使用表示机器的处理能力(其中k=1,2,3),此处使用Sij表示第i个RDD的第j个分区的大小(S1+S2+......+Sn=Size(RDDi))。可以近似得出每个分区的执行时间:由于每个RDD中的所有分区都是并行执行的,所以RDD的执行时间即为最长的分区所执行的时间,即其中,m表示第i个RDD总共有m个分区。由于在集群中应用执行的过程中,有些分区需要从其他节点上拉去数据,所以需要考虑节点间的通信时间,这里本专利技术使用分区的完成时间与开始时间之差表示,即:FTij-STij,用Nij表示某个RDD的分区数量,至此本专利技术可以得到整个RDD的执行效率为:算子权重的具体计算方法为:定义Wi(i=1,2,…,M)表示算子权值,其中M表示算子个数。每个算子均有一个权值,根据上述层次分析法可以得到算子的时间复杂度和空间复杂度之间的度量关系Cv=f(Ot,Os)。其中,Ot代表算子的时间复杂度,Os表示算子的空间复杂度,Cv表示时间复杂度和空间复杂度的度量关系。S3)根据RDD的执行时间RDD的执行效率和算子权值Wi得到已排序的RDD序列即序列化候选集合;定义表示a算子后面的第i个RDD数据集权值,根据上述参数定义及计算规则,RDD权值可按照公式(6)表示:其中,Size(RDD)表示RDD的大小,Wi表示第i个算子的权值,AN表示算子经过的Action个数,表示第i个RDD的处理时间,k表示校正参数,取值为{10,100,1000,…}。S4)从序列化候选集合中选择值最小的进行序列化存储;S5)继续步骤1),直到应用执行完毕。S5)继续步骤1),直到应用执行完毕。本专利技术的基本思想是建立一个优化的序列化存储策略,实现在应用执行过程中高效存储有价值的RDD缓存,从而提高内存使用率的目的。相比与现有的缓存使用方案,本方法应用于现有的Spark大数据平台上,能够在内存资源有限时使整个应用保持较本文档来自技高网
...
一种基于Spark算子的序列化存储优化方法

【技术保护点】
一种基于Spark算子的序列化存储优化方法,其特征在于:包括以下步骤:S1)检测应用执行过程中机器的内存使用量,如果检测到当前内存值正常,则继续监测,若检测到已达到指定阈值,则执行步骤S2);S2)计算RDD的执行时间

【技术特征摘要】
1.一种基于Spark算子的序列化存储优化方法,其特征在于:包括以下步骤:S1)检测应用执行过程中机器的内存使用量,如果检测到当前内存值正常,则继续监测,若检测到已达到指定阈值,则执行步骤S2);S2)计算RDD的执行时间RDD的执行效率和算子权值Wi;S3)根据RDD的执行时间RDD的执行效率和算子权值Wi得到已排序的RDD序列即序列化候选集合;S4)从序列化候选集合中选择值最小的进行序列化存储;S5)继续步骤1),直到应用执行完毕。2.根据权利要求1所述的一种基于Spark算子的序列化存储优化方法,其特征在于:在步骤S2)中,所述执行时间通过公式(1)获得:其中,m表示第i个RDD总共有m个分区,Sij表示第i个RDD的第j个分区的大小,Pmem表示机器的处理能力。3.根据权利要求2所述的一种基于Spark算子的序列化存储优化方法,其特征在于:在步骤S2)中,RDD的执行效率通过公式(2)获得:

【专利技术属性】
技术研发人员:熊安萍杨方方邹洋祝清意
申请(专利权)人:重庆邮电大学
类型:发明
国别省市:重庆,50

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1