一种面向Spark的基于数据感知的缓存替换方法及系统

文档序号:856855 发布日期:2021-04-02 浏览:8次 >En<

阅读说明:本技术 一种面向Spark的基于数据感知的缓存替换方法及系统 (Spark-oriented cache replacement method and system based on data perception ) 是由 黄涛 钟华 魏峻 李慧 郑莹莹 唐震 许利杰 王伟 于 2020-12-22 设计创作,主要内容包括:本发明公开了一种面向Spark的基于数据感知的缓存替换方法,属于软件技术领域,通过分析Spark框架的应用数据依赖关系和历史执行信息,获取数据块的被依赖次数、占用内存空间大小、计算用时和被引用次数,基于这些因素建立权重模型,计算出数据块的权重;将数据块权重值从小到大排序,选择权重值较小数据且与待缓存的数据块不属于同一个RDD的数据块进行缓存替换。本发明针对现有应用负载特征多样性,应用对内存资源需求的持续变化性,动态感知用户负载特征,并根据历史运行信息,计算得到的权重值,衡量缓存替换最合适的数据,并实时结合当前内存资源情况作出替换决定,实现Spark框架缓存管理机制的优化。(The invention discloses a Spark-oriented cache replacement method based on data perception, which belongs to the technical field of software, and is characterized in that dependent times, occupied memory space size, calculation time and quoted times of a data block are obtained by analyzing the application data dependency relationship and historical execution information of a Spark frame, a weight model is established based on the factors, and the weight of the data block is calculated; and sorting the weighted values of the data blocks from small to large, and selecting the data blocks which have smaller weighted values and do not belong to the same RDD as the data block to be cached for cache replacement. Aiming at the diversity of the existing application load characteristics and the continuous variability of the application to the memory resource requirements, the invention dynamically senses the user load characteristics, calculates the obtained weighted value according to the historical running information, measures the most appropriate data for cache replacement, and makes a replacement decision in real time by combining the current memory resource condition, thereby realizing the optimization of the Spark framework cache management mechanism.)

一种面向Spark的基于数据感知的缓存替换方法及系统

技术领域

本发明涉及一种面向Spark框架的基于数据感知的权重模型缓存替换方法及系统,属于软件技术领域。

背景技术

伴随海量数据递增及业务日益复杂,人们对数据处理的要求日益增加。相对于早期的通用并行分布式计算框架(例如Hadoop),基于内存的分布式计算框架Spark在处理机器学习、图计算等领域中的迭代计算、交互式数据查询、并行计算等方面非常高效。尤其是基于内存的大数据处理平台往往通过缓存有效的数据在内存中以备复用来提高应用速度。面对CPU密集型应用场景时,创建对象过多会容易填满内存,引起GC(Garbage Collection)问题,系统会寻找不再使用的对象进行回收,降低程序执行性能。同时,当缓存的分区数据占满了内存,系统将启用缓存替换对分区数据作出替换决定:剔除旧数据缓存新数据。维持有价值的数据缓存在内存中,及时剔除不必要数据释放内存空间是提升应用程序执行性能的重要手段之一。缓存替换策略丰富多样,根据不同的历史信息(时间或者频率)预测未来数据的访问模式。LRU(Least Recently Used)表示基于最少最长时间未被访问的缓存数据块进行淘汰;LRU作是一种常用的缓存置换算法,被广泛应用系统设计中,同时也应用到各个计算框架或者平台上。Spark计算框架中的LRU算法核心思想就是当缓存空间被占满时,如果再次发生缓存失效,就将最近最少使用的数据从缓存空间中剔除以增加可用的缓存空间来缓存新数据。LRU仅仅考虑内存中的数据被访问的时间因素,将长期未被访问的数据被剔除。缓存数据的有效性除了考虑被访问时间的单一因素外,还需要考虑更多其他因素。

Spark提供抽象弹性分布式数据集RDD,并通过谱系图(lineage graph)来记录这些不同RDD之间的依赖关系。用户具体的应用逻辑表现为一系列数据的RDD转换处理。可以动态获取用户应用程序本身的RDD依赖关系,以及其他历史执行信息等。其他传统的缓存替换策略如LFU(Least Frequency Used)缓存的数据块基于最少频率未被访问进行淘汰,决策缓存数据有效性时仅仅考虑被访问频率这一单一因素;LRFU(L.Donghee et al.,"LRFU:a spectrum of policies that subsumes the least recently used and leastfrequently used policies,"IEEE Transactions on Computers,vol.50,no.12,pp.1352-1361,2001)算法考虑到了数据块的计算成本和大小,但并没有考虑到数据块的使用次数。根据单一维度(时间或频率或使用次数)的缓存替换策略难以适应各种工作负载场景。通过上述分析,LFU、LRFU等机制做出替换决定选择的有效缓存数据优势不明显。

大数据应用的负载特征往往是动态的,面对复杂应用时,尤其在有限的内存资源中,集成在Spark框架中的缓存替换策略LRU未考虑分区数据计算代价、数据依赖关系、分区依赖次数等因素,从而难以选择合理的数据持久化在内存中以备后续作业计算所复用。

用户程序提交到集群,应用执行表现为对各个节点上的数据进行处理,并且诸多分布式应用很多都是重复地对不同数据进行相同的运算步骤,结合Spark的编程特性,可以基于执行前生成的谱系图进行来评估合理的数据在内存中,以获得更好的性能。因此,由于应用负载的动态变化特性,以及Spark特殊的编程特性,面向Spark分布式计算框架,设计高效的缓存替换方法及系统十分重要并具有技术可实现性。

10页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种动态配置通道的总线互联系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类