一种基于大数据平台的影子计算方法技术

技术编号:36431949 阅读:8 留言:0更新日期:2023-01-20 22:44
本发明专利技术公开了一种基于大数据平台的影子计算方法,包括:接收客户端的处理任务;计算处理任务的数据集大小与处理任务的数据集所需的执行器内存大小之间的比例;若比例大于影子计算启动阈值,根据比例和处理任务生成多个影子任务和多个影子数据集;其中,影子数据集具有同等比例的执行器内存;向从节点发送多个影子任务和多个影子数据集,以使从节点根据每个影子任务应用一种缓存替换算法对影子数据集进行计算;接收从节点的每个影子任务回复的缓存命中率,根据所有影子任务的缓存命中率的高低情况选择一个最优的影子任务的缓存替换算法作为处理任务的数据集的缓存替换算法。本发明专利技术自适应选取更合适的缓存替换算法,具有很高的灵活性和优化效果。的灵活性和优化效果。的灵活性和优化效果。

【技术实现步骤摘要】
一种基于大数据平台的影子计算方法


[0001]本专利技术涉及计算引擎
,尤其是涉及一种基于大数据平台的影子计算方法。

技术介绍

[0002]在Spark分布式计算框架中,系统采用的是基于最近最少使用(Least Recently Used,LRU)缓存替换策略。LRU的基本思想是通过一个数据块最近的使用情况预测该数据块在未来被使用的可能性。为了实现LRU缓存替换算法,Spark中的Memory Store类实现了一个基于数据块(Block)的分布式内存数据库,用来对需要写入内存中的Block数据进行管理。Block数据以序列化的形式存储也可以以非序列化的形式存储,但这两种形式的存储方式都必须经过Spark中的Memory Entry接口。即,Memory Store对以Memory Entry接口为父接口的内存对象进行管理。在当前版本的Spark中,Memory Store对内存对象的管理是通过一个双向链表Linked Hash Map来实现的。Linked Hash Map是一个有序的Hash Map,可以对链表内的元素按照插入顺序进行管理,将各个节点构成一个双向链表。当有新的数据缓存时,该数据插入Linked Hash Map链表头部。当链表中的数据被再次访问时,该数据移动到链表头部。当有新的数据需要缓存,而Spark存储内存不足时,Linked Hash Map按照列表从尾部开始向前丢弃数据。
[0003]因此当前的缓存替换策略存在以下问题:(1)LRU(最近最少使用)算法会在每次读取新的RDD时从内存中驱逐最近最少使用的RDD。在大数据常用的如PageRank,K

means,神经网络等迭代算法中,均存在某部分数RDD需要反复使用的情况,LRU简单的判断机制也容易将此类RDD驱逐出内存,造成同一RDD的反复读取和驱逐,导致缓存命中率较低。(2)没有考虑到RDD数据块重复使用、RDD执行效率等问题。LRU缓存替换犯法仅仅粗糙的选择最近最久未使用的RDD淘汰。这样的淘汰策略容易将数据重复性高但最近未使用的RDD淘汰出内存,也可能造成多个重复使用的数据互相替换的情况,导致如某些多迭代任务中缓存命中率下降以及执行效率不理想的问题。(3)没有考虑不同缓存大小时的算法差距。在集群机器内存空间充足时,缓存替换频率较低,迭代算法可以较为流畅地完成,而不需要在一次迭代中进行缓存替换操作。LRU算法可以以较小的计算量获得较好的降低Spark读写开销的效果。而在可用内存空间吃紧时,LRU缓存替换机制对Spark读写开销的优化效果则会急剧下降。

技术实现思路

[0004]本专利技术旨在至少解决现有技术中存在的技术问题之一。为此,本专利技术提出一种基于大数据平台的影子计算方法,能够考虑多种缓存策略并通过影子计算选择缓存命中率高、执行效率快的缓存替换策略。
[0005]第一方面,本专利技术的实施例提供了一种基于大数据平台的影子计算方法,所述基于大数据平台的影子计算方法包括:
[0006]接收客户端的处理任务;
[0007]计算所述处理任务的数据集大小与所述处理任务的数据集所需的执行器内存大小之间的比例;
[0008]若所述比例大于影子计算启动阈值,根据所述比例和所述处理任务生成多个影子任务和多个影子数据集;其中,所述影子数据集具有同等所述比例的执行器内存;
[0009]向从节点发送多个所述影子任务和多个所述影子数据集,以使所述从节点根据每个所述影子任务应用一种缓存替换算法对所述影子数据集进行计算;
[0010]接收所述从节点的每个所述影子任务回复的缓存命中率,根据所有所述影子任务的缓存命中率的高低情况选择一个最优的所述影子任务的缓存替换算法作为所述处理任务的数据集的缓存替换算法。
[0011]根据本专利技术实施例的方法,至少具有如下有益效果:
[0012]首先通过计算处理任务的数据集和数据集对应的执行器内存的比例,保证影子计算的小数据集在计算过程中对存储内存的占用尽可能的接近处理任务的大数据集的计算,更加真实准确地模拟缓存替换算法;然后通过计算每个缓存替换算法下的影子计算的缓存命中率,提供每个缓存替换算法最直观的表现,并且考虑多个缓存替换算法进行比较,提高了鲁棒性;最后通过最优的缓存命中率选择缓存替换算法,得到了最优的缓存替换算法并且选择缓存替换算法不依赖实际场景,能够在不同的工作流自适应的选取最合适的缓存替换算法,具有高灵活性。
[0013]根据本专利技术的一些实施例,所述计算所述处理任务的数据集大小与所述处理任务的数据集所需的执行器内存大小之间的比例,包括:
[0014][0015]其中,ratio表示处理任务的数据集和处理任务的数据集所需的执行器内存的比例;datasetSize为处理任务的数据集的大小;ExecutorMemory表示执行器初始化的内存大小;fra表示存储内存与执行内存的比例。
[0016]根据本专利技术的一些实施例,所述根据所述比例和所述处理任务生成多个影子任务和多个影子数据集,包括:
[0017]将所述比例和所述处理任务通过采样缩放的方式生成多个影子任务和多个影子数据集。
[0018]根据本专利技术的一些实施例,在所述根据所有所述影子任务的缓存命中率的高低情况选择一个最优的所述影子任务的缓存替换算法作为所述处理任务的数据集的缓存替换算法之后,所述基于大数据平台的影子计算方法还包括:
[0019]设立历史库,所述历史库用于存储所述处理任务选择缓存替换算法的记录。
[0020]根据本专利技术的一些实施例,通过如下方式存储所述处理任务选择缓存替换算法的记录:
[0021]提取所述处理任务的RDD结构树的DAG图、所述处理任务的数据集大小和所述处理任务的数据集所需的执行器内存大小的比例以及所述处理任务选择的缓存替换算法;
[0022]将DAG图以网络数据文本的方式存储于所述历史库,将所述处理任务的数据集大小和所述处理任务的数据集所需的执行器内存大小的比例以及所述处理任务选择的缓存
替换算法通过文件地址存储于所述历史库。
[0023]根据本专利技术的一些实施例,在所述根据所述比例和所述处理任务生成多个影子任务和多个影子数据集之前,所述基于大数据平台的影子计算方法还包括:
[0024]判断所述处理任务与所述历史库中的历史任务是否相匹配,若所述处理任务与所述历史库中的历史任务相匹配,选择所述历史任务的缓存替换算法作为所述处理任务的缓存替换算法。
[0025]根据本专利技术的一些实施例,所述判断所述处理任务与所述历史库中的历史任务是否相匹配,包括:
[0026]若所述处理任务的DAG图存在多个重复的Stage,则将Stage作为特征DAG;若所述处理任务的DAG图不存在多个重复的Stage,则将算法整体作为特征DAG;
[0027]从所述特征DAG提取节点数和边数作为算法特征;
[0028]计算所述历史任务的数据集大小和所述历史任务的数据集所需的执行器内存大小的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于大数据平台的影子计算方法,其特征在于,所述基于大数据平台的影子计算方法包括:接收客户端的处理任务;计算所述处理任务的数据集大小与所述处理任务的数据集所需的执行器内存大小之间的比例;若所述比例大于影子计算启动阈值,根据所述比例和所述处理任务生成多个影子任务和多个影子数据集;其中,所述影子数据集具有同等所述比例的执行器内存;向从节点发送多个所述影子任务和多个所述影子数据集,以使所述从节点根据每个所述影子任务应用一种缓存替换算法对所述影子数据集进行计算;接收所述从节点的每个所述影子任务回复的缓存命中率,根据所有所述影子任务的缓存命中率的高低情况选择一个最优的所述影子任务的缓存替换算法作为所述处理任务的数据集的缓存替换算法。2.根据权利要求1所述的基于大数据平台的影子计算方法,其特征在于,所述计算所述处理任务的数据集大小与所述处理任务的数据集所需的执行器内存大小之间的比例,包括:其中,ratio表示处理任务的数据集和处理任务的数据集所需的执行器内存的比例;datasetSize为处理任务的数据集的大小;ExecutorMemory表示执行器初始化的内存大小;fra表示存储内存与执行内存的比例。3.根据权利要求1所述的基于大数据平台的影子计算方法,其特征在于,所述根据所述比例和所述处理任务生成多个影子任务和多个影子数据集,包括:将所述比例和所述处理任务通过采样缩放的方式生成多个影子任务和多个影子数据集。4.根据权利要求3所述的基于大数据平台的影子计算方法,其特征在于,在所述根据所有所述影子任务的缓存命中率的高低情况选择一个最优的所述影子任务的缓存替换算法作为所述处理任务的数据集的缓存替换算法之后,所述基于大数据平台的影子计算方法还包括:设立历史库,所述历史库用于存储所述处理任务选择缓存替换算法的记录。5.根据权利要求4所述的基于大数据平台的影子计算方法,其特征在于,通过如下方式存储所述处理任务选择缓存替换算法的记录:提取所述处理任务的RDD结构树的DAG图、所述处理任务的数据集大小和所述处理任务的数据集所需的执行器内存大小的比例以及所述处理任务选择的缓存替换算法;将DAG图以网络数据文本的方式存储于所述历史库,将所述处理任务的数据集大小和所述处...

【专利技术属性】
技术研发人员:张经宇孙永涛王进张睿涵王磊李文军何施茗
申请(专利权)人:长沙理工大学
类型:发明
国别省市:

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

1