spark分布式计算和rdd模型研究

spark分布式计算和rdd模型研究

ID:22583950

大小:457.78 KB

页数:13页

时间:2018-10-30

spark分布式计算和rdd模型研究_第1页
spark分布式计算和rdd模型研究_第2页
spark分布式计算和rdd模型研究_第3页
spark分布式计算和rdd模型研究_第4页
spark分布式计算和rdd模型研究_第5页
资源描述:

《spark分布式计算和rdd模型研究》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、1背景介绍现今分布式计算框架像MapReduce和Dryad都提供了高层次的原语,使用户不用操心任务分发和错误容忍,非常容易地编写出并行计算程序。然而这些框架都缺乏对分布式内存的抽象和支持,使其在某些应用场景下不够高效和强大。RDD(ResilientDistributedDatasets弹性分布式数据集)模型的产生动机主要来源于两种主流的应用场景:>迭代式算法:迭代式机器学习、图算法,包括PageRank、K-means聚类和逻辑回归(logisticregression)>交互式数据挖掘工具:用户在同一数据子集上运行多个Adhoc查询。不难

2、看出,这两种场景的共同之处是在多个计算或计算的多个阶段间重用中间结果。不幸的是,在目前框架如MapReduce中,要想在计算之间重用数据,唯一的办法就是把数据保存到外部存储系统中,例如分布式文件系统。这就导致了巨大的数据复制、磁盘I/O、序列化的开销,甚至会占据整个应用执行时间的一大部分,为了解决这种问题,研究人员为有这种数据重用需要的应用开发了特殊的框架。例如将中间结果保存在内存中的迭代式图计算框架Pregel。然而这些框架只支持一些特定的计算模式,而没有提供一种通用的数据重用的抽象。于是,RDD横空出世,它的主要功能有:>高效的错误容忍>中

3、间结果持久化到内存的并行数据结构>可控制数据分区来优化数据存储>丰富的操作方法对于设计RDD来说,最大的挑战在于如何提供高效的错误容忍(fault-tolerance)。现有的集群上的内存存储抽象,如分布式共享内存、key-value存储、内存数据库以及Piccolo等,都提供了对可变状态(如数据库表里的Cell)的细粒度更新。在这种设计下为了容错,就必须在集群结点间进行数据复制(datareplicate)或者记录日志。这两种方法对于数据密集型的任务来说开销都非常大,因为需要在结点间拷贝大量的数据而网络带宽远远低于RAM。与这些框架不同,RD

4、D提供基于粗粒度转换(coarse-grainedtransformation)的接口,例如map、filter、join,能够将同一操作施加到许多数据项上。于是通过记录这些构建数据集(lineage世族)的粗粒度转换的日志,而非实际数据,就能够实现高效的容错。当某个RDD丢失时,RDD有充足的关于丢失的那个RDD是如何从其他RDD产生的信息,从而通过重新计算来还原丢失的数据,避免了数据复制的高开销,尽管基于粗粒度转换的接口第一眼看起来有些受限、不够强大,但实际上RDD却能很好地用于许多并行计算应用,因为这些应用本身自然而然地就是在多个数据项上

5、运用相同的操作。事实上,RDD能够高效地表达许多框架的编程模型,如MapReduce、DryadLINQ、SQL、Pregel和HaLoop,以及它们处理不了的交互式数据挖掘应用,2RDD简介2.1概念RDD是一种只读的、分区的记录集合。具体来说,RDD具有以下一些特点:>创建:只能通过转换(transformation,如map/filter/groupBy/join等,区别于动作action)从两种数据源中创建RDD:1)稳定存储中的数据;2)其他RDD。>只读:状态不可变,不能修改>分区:支持使RDD中的元素根据那个key来分区(part

6、itioning),保存到多个结点上,还原时只会重新计算丢失分区的数据,而不会影响整个系统。>路径:在RDD中叫世族或血统(lineage),即RDD有充足的信息关于它是如何从其他RDD产生而来的,>持久化:支持将会•被重用的RDD缓存(如in-memory或溢出到磁盘)>延迟计算:像DryadLINQ—样,Spark也会延迟计算RDD,使其能够将转换管道化(pipelinetransformation)>操作:丰富的动作(action),count/reduce/collect/save等,关于转换(transformation)与动作(ac

7、tion)的区别,前者会生成新的RDD,而后者只是将RDD上某项操作的结果返回给程序,而不会生成新的RDD:•mtnu.fUterilues"Mert*U1UWIBasicTransformationssc.paral1e1ize([le2t3])numsTransformations(define«newROD)mapflatMapfilter1一unionsamplejoingroupByKeyt^groupreduccBylCeycrossWftByKeymapValuesActions(returnaresulttodriverprog

8、ram)collectreducecountsaveIwkvpKcy#Passeachclementthrouflhafunctionsquares■

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。