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)获得:FTij表示分区完成时间,STij表示分区开始时间,Nij表示表示某个RDD的分区数量;EPij表示第i个RDD上所有分区的执行能力。
4.根据权利要求2所述的一种基于Spark算子的序列化存储优化方法,其特征在于:在步骤S2)中,定义Wi(i=1,2,…,M)表示算子权值,每个算子均有一个权值,根据层次分析法得到算子的时间复杂度和空间复杂度之间的度量关系Cv=f(Ot,Os),算子权重Wi通过以下公式获得:代表算子的时间复杂度, 表示算子的空间复杂度,Cv表示时间复杂度和空间复杂度的度量关系。
5.根据权利要求1所述的一种基于Spark算子的序列化存储优化方法,其特征在于:在步骤S3)中,RDD权值通过公式(5)获得:其中,Size(RDD)表示RDD的大小,Wi表示第i个算子的权值,AN表示算子经过的Action个数, 表示第i个RDD的处理时间,k表示校正参数,取值为{10,100,1000,…}。