RDD模型

Spark是Berkeley大学AMP(stands for Algorithms, Machines, and People)实验室开发的一个项目。它是一个基于RDD(Resilient Distributed Datasets)模型,能够支持计算MapReduce模式的作业,主要用于迭代计算和交互式数据计算等中间结果可重用的分布式计算框架。Spark 将数据缓存在内存中从而减少数据的访问延迟。

1. RDD

RDD,即可伸缩的分布式数据集合,管理数据缓存和数据重用,采用分析日志方式支持数据容错,提供了粗粒度的事务处理接口(map,filter,join)。RDD 对数据记录进行分区存储,本身是只读的。RDD 的数据来源:1) 稳定的存储介质;2) 其它的RDD存储的数据。RDD对程序员开发了两种操作:数据存储和分区。RDD本身不做物理储存,通过保存足够的信息去实际的储存中计算出RDD,可以将RDD视为松散的虚拟内存[1]

2. RDD v.s. DSM

RDD相比于DSM(共享内存)有如下的不同

AspectRDDSDSM
ReadsCoarse- or fine-grainedFine-grained
WritesCoarese-grainedFine-grained
ConsistencyTrivial (immutable)Up to app / runtime
Fault recoveryFrine-grained and low-overhead using lineageRequires checkpoints and program rollback
Straggler mitigationPossible using backup tasksDifficult
Work placementAutomatic based on data localityUp to app
Behavior if not enough RAMSimilar to existing data flow systemsPoor perfermance 

3. 共享变量[2]

当Spark并发运行一个函数时,它是以多个的task,在不同的结点上运行,它传递每一个变量的一个拷贝,到每一个独立task使用到的函数中,因此这些变量并非共享的。然而有时候,我们需要在任务中能够被共享的变量,或者在任务与驱动程序之间共享。Spark支持两种类型的共享变量:

     广播变量:      可以在内存的所有结点中被访问,用于缓存变量(只读)

     累加器:         只能用来做加法的变量,例如计数和求和

4. Spark编程模型

Spark 使用 Scala 语言编写,分布式事务管理使用Mesos,并支持HDFS文件系统,是一个轻量级的框架。其0.5版有1,4000行代码。

spark code开发者编写 Driver 控制集群中的 worker。一个Driver定义了一个或多个RDD,并能够记录RDD之间的进化关系。worker是一个长进行,将存储了RDD分区存储在内存中执行操作。RDD数据集上定义了两种操作[3]:action 和 transformation。action,即在数据集上执行计算,并向driver返回一个值;transformation,即从已有数据集创建新的数据集。

转载于:https://www.cnblogs.com/valder/archive/2012/08/27/2658090.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/409605.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ConcurrentHashMap,一个更快的HashMap

ConcurrentHashMap 是 Doug Lea 的 util.concurrent 包的一部分,它提供比 Hashtable 或者 synchronizedMap 更高程度的并发性。而且,对于大多数成功的 get() 操作它会设法避免完全锁定,其结果就是使得并发应用程序有着非常好的吞吐量。这个月…

python处理图片隐写分析_Python3简单实现隐写术

下载W3Cschool手机App,0基础随时随地学编程>>戳此了解导语利用Python简单实现图片隐写术。。。或者说是水印技术。。。说实话,真的只是简单实现。。。没什么技术含量。。。可以说是入门级的隐写术/水印技术。。。Lets Go?相关文件密码: 9ffy开发工…

流程图中的虚线含义_还在为画流程图烦恼,焦躁?介绍一款画图神器,让你爱上画图!...

在团队协作过程中最常见的就是开会、开会最常用的就是图,而图中最常见的就是流程图,时序图,类图等下面介绍一款画图神器:PlantUMLPlantUML是一个开源项目,支持快速绘制:时序图用例图类图活动图组件图状态图…

有限状态自动机java实现_用java开发编译器之:Thompson构造,将正则表达式转换为有限状态自动机...

阅读博客的朋友可以到我的网易云课堂中,通过视频的方式查看代码的调试和执行过程:上一节,我们通过代码,实现了一个有限状态自动机,并将其应用于对整形和浮点数的识别。构造有限状态自动机,并驱动它&#xf…

java圆形进度条_可拖拽圆形进度条组件(支持移动端)

好久之前写过一个可拖拽圆形进度条的dome,中间有网友反馈过一些问题,最近比较闲有时间修改了一些问题也做了一些优化,并封装成组件,基于canvas实现,只需传入放置组件dom容器,任何框架均可直接使用&#xff…

u盘无法复制文件进去_只需一招,禁止Windows复制文件到U盘,再也不用担心你的资料被拷走!...

现在,我们日常的生活和工作都是电脑全程陪伴,可以说是离不开电脑了。也正是因为电脑的功能那么多,而且在保存资料方面,相比纸质资料来讲,确实有十分大的优势!因此,有许多人都会将一些重要的个人…

java word 饼图_[Java教程]echarts标准饼图解读(一)——基本配置demo

[Java教程]echarts标准饼图解读(一)——基本配置demo0 2016-11-21 17:00:18echarts标准饼图解读共分为四部分,一、基本配置demo二、标题(title)配置三、提示框(tooltip)配置四、图例(legend)配置五、系列列表(series )配置下面是一个基本配置demo,复制下…

postgres 禁止远程登录_Windows 7禁止可移动存储设备写入数据,只有想不到,没有做不到...

哈喽,今日头条的小伙伴们大家好,我是你们的好朋友IT咨询顾问。组策略是微软Windows NT家族操作系统的一个特性,它可以控制用户帐户和计算机帐户的工作环境。组策略提供了操作系统、应用程序和活动目录中用户设置的集中化管理和配置&#xff0…