- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Spark计算引擎数据对象缓存优化研究
Spark计算引擎数据对象缓存优化研究
摘要:研究了Spark并行计算集群对于内存的使用行为,认为其主要工作是通过对内存行为进行建模与分析,并对内存的使用进行决策自动化,使调度器自动识别出有价值的弹性分布式数据集(RDD)并放入缓存。另外,也对缓存替换策略进行优化,代替了原有的近期最少使用(LRU)算法。通过改进缓存方法,提高了任务在资源有限情况下的运行效率,以及在不同集群环境下任务效率的稳定性。
关键词:并行计算;缓存;Spark;RDD
Abstract:In this paper, Spark parallel computing cluster for memory is studied. Its main work is about modeling and analysis of memory behavior in the computing engine and making the cache strategy automatic. Thus, the scheduler can recognize a valuable data object to be cached in the memory. A new cache replacement algorithm is proposed to replace least recently used (LRU) and have better performance in some applications. Thus, the performance and reliability of the Spark computing engine can be improved.
Key words:parallel computing; cache; Spark; resilient distributed dataset(RDD)
大数据处理的框架在现阶段比较有影响力的是基于Google所发明的MapReduce[1]方法及其Hadoop[2]的实现。当然,在性能上传统的消息传递接口(MPI)[3]会更好,但是在处理数据的方便使用性、扩展性和可靠性方面MapReduce更加适合。使用MapRecuce可以专注于业务逻辑,不必关心一些传统模型中需要处理的复杂问题,例如并行化、容错、负载均衡等。
由于Hadoop通过Hadoop分布式文件系统(HDFS)[4]读写数据,在进行多轮迭代计算时速度很慢。随着需要处理的数据越来越大,提高MapReduce性能变成了一个迫切的需求,Spark[5]便是在此种背景下应运而生。
Spark主要针对多轮迭代中的重用工作数据集(比如机器学习算法)的工作负载进行优化,主要特点为引入了内存集群计算的概念,将数据集缓存在内存中,以缩短访问延迟。
Spark编程数据模型为弹性分布式数据集(RDD)[6]的抽象,即分布在一组节点中的只读对象集合。数据集合通过记录来源信息来帮助重构以达到可靠的目的。RDD被表示为一个Scala[7]对象,并且可以从文件中创建它。
Spark中的应用程序可实现在单一节点上执行的操作或在一组节点上并行执行的操作。对于多节点操作,Spark依赖于Mesos[8]集群管理器。Mesos能够对底层的物理资源进行抽象,并且以统一的方式提供给上层的计算资源。通过这种方式可以让一个物理集群提供给不同的计算框架所使用。
Spark使用内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。使用这种方法,几乎可以将所有数据都保存在内存中,这样整体的性能就有很大的提高。然而目前Spark由于将缓存策略交由程序员在代码中手动完成,有可能会引起缓存的低效甚至程序出错,主要原因如下:
(1)程序员如果缓存无用的数据,将会导致内存未被充分利用,降低内存对程序性能的提升;
(2)错误的缓存甚至会产生内存溢出等严重后果,直接导致程序崩溃出错;
(3)程序中有具有缓存价值的数据得不到缓存,将使程序不能达到最高效率。
随着项目变大,代码量增加,这个问题会变得越来越严重。如果使用自动分析的方法,自动完成缓存的工作,无疑会降低程序员负担以及避免上述的问题。下面将对这方面进行初步研究,通过分析与建模,目的是使内存的使用更加智能有效,并加速任务的运行速度。
1 Spark中缓存优化研究
我们分3个方面对Spark中的缓存进行研究:一个是缓存自动化方法;一个是缓存替换方法改进;最后是程序执行调度顺序与缓存的关系。
1.1 Spark中的缓存
Spark通过将RDD数据块对象缓存在内存中这一方式对MapReduce程序进行性能上的提升改
您可能关注的文档
最近下载
- 辽宁省社区工作者招聘笔试真题.pdf VIP
- 2_H3G-TA硬件安装调试手册(CM-02N)B2版(对外公开)华塑电池巡检仪.pdf VIP
- 超实用高考英语复习:阅读理解话题分类专练 文娱与体(含答案).docx VIP
- 民航法律法规教案【参考】.doc VIP
- 实验室生物安全管理手册(2025版).pdf VIP
- 名著导读(朝花夕拾).ppt VIP
- 民航法律法规与实务(全套课件).ppt
- 服装包装、配送、检验、验收及售后服务方案.docx VIP
- 高中英语人教版选择性必修第一册词汇表单词英译汉默写.docx VIP
- 2025年辽宁省锦州市北镇市观音阁街道招聘社区工作者考前自测高频考点模拟试题含答案解析.docx VIP
文档评论(0)