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,一经查实,立即删除!

相关文章

计算机视觉python入门_计算机视觉应该怎样入门?

自学了一段时间计算机视觉(Computer Vision),下文简称:CV。内容以基本概念为主,形式以看书为主,跟着敲代码为辅。起因:因工作中会涉及到交通物流风险管理、出险理赔材料审查等内容,会涉及到大量人工介入审阅…

java lambda if_使用Java8的Lambda实现Monda -解道Jdon

使用Java8的Lambda实现MonadMonad是函数语言(Cojure或Scala)中的设计模式概念, 那么现在为什么在Java中变得如此重要?因为Java从版本8以后引入了新的Lambda特性,Lambda或闭包是函数语言的特征,它允许你使用代码块作为一个变量&…

ConcurrentHashMap,一个更快的HashMap

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

python算法与程序设计基础(第二版)第八章实训答案_Python算法与程序设计基础(第2版)...

章程序设计与计算思维1.1程序设计与计算机语言1.1.1程序设计1.1.2设计步骤1.1.3程序设计分类1.1.4基本规范1.1.5计算机语言1.2计算机语言与计算思维的关系1.2.1思维与计算思维1.2.2计算思维与计算科学的关系1.2.3计算思维与程序设计语言的关系1.3初识Python语言1.3.1Python语言…

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

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

使用Jquery提交Json格式的数据到Asp.net程序的另类做法

一般我们使用Jquery提交数据到Asp.net程序都有两种方法,今天我再介绍一种方法.以下是详细描述: 1)使用Get请求的方式,将参数接在请求Url的后面.例如: http://www.google.com.hk/search?qjquerypost 获取参数的方法:在Asp.net中可以使用Request.QueryString["q"]来获…

python xml添加命名空间_XML的命名空间与python解析方法

在 XML 中,元素名称是由开发者定义的,当两个不同的文档使用相同的元素名时,就会发生命名冲突,而XML 命名空间提供避免元素命名冲突的方法。XML 命名空间属性被放置于元素的开始标签之中,并使用以下的语法:x…

详解在Visual Studio中使用git版本系统(转)

http://www.uml.org.cn/pzgl/201206211.asp 转载于:https://www.cnblogs.com/kevin3274/archive/2012/08/29/2662556.html

java派生类_我可以使派生类从Java的基类继承派生成员...

我有看起来像这样的代码:public class A{public void doStuff(){System.out.print("Stuff successfully done");}}public class B extends A{public void doStuff(){System.out.print("Stuff successfully done, but in a different way");}pub…

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

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

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

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

Zend Server搭建网站备注

1、Zend Server的使用 Zend Server自带php和apache,所以装zendserver的话不需要再安装其他任何东西。(mysql默认没有安装,可以自行设置) 2、工作路径配置: 在Zend\Apache2\conf\httpd.conf中添加 Alias/test "F:/workbench/t…

python的符号函数得到的数字类型_Python笔记——数字类型的几个函数

标准类型内建函数&#xff1a;cmp(obj1, obj2) 比较obj1和obj2&#xff0c;根据比较结果返回整型i:i < 0 if obj1 < obj2i > 0 if obj1 > obj2i 0 if obj1 obj2repr(obj)或obj 返回一个对象的字符串表示str(obj) 返回对象适合可读性好的字符串表示type(obj) 得到…

将SqlServer的数据导出到Excel/csv中的各种方法 .

以下都只是介绍操作的原理&#xff0c;具体要求要在应用中具体分析改变。 如果大家有其他好的方法&#xff0c;请相互告知&#xff0c;共同学习。 1. 此方法常用在form或者Console Application中&#xff0c;使用时须用要添加Reference&#xff0c;具体做法&#xff1a; …