Spark- Spark基本工作原理
Spark特点:
1.分布式
spark读取数据时是把数据分布式存储到各个节点内存中
2.主要基于内存(少数情况基于磁盘,如shuffle阶段)
所有计算操作,都是针对多个节点上内存的数据,进行并行操作的
3.迭代式计算
对分布式节点内存中的数据进行处理,处理后的数据可能会移动到其他节点的内存中,当需要用到某些数据时,从这些节点的内存中就能找到,迭代出来使用
Spark与MapReduce的区别
Spark与MapReduce最大的不同在于,迭代式计算模型:
MapReduce分为两个阶段,map和reduce,两个阶段完成就结束了,所以我们在一个job里能做的处理有限,只能在map和reduce里处理
Spark计算模型可以分为n个阶段,因为他是内存迭代式的,我们在处理完一个阶段以后,可以继续往下处理很多个阶段,而不只是两个阶段。所以,Spark相较于MapReduce来说,计算模型可以提供更强大的功能。
RDD
官网上有准确的介绍:http://spark.apache.org/docs/1.6.1/programming-guide.html#resilient-distributed-datasets-rdds
1.RDD是Spark提供的核心抽象,全称为 Resilient Distributed Datasets (RDDs),即弹性分布式数据集。
RDD的每个partition ,在Spark 节点上存储时,默认是放在内存中的,但是如果说内存放不下这么多数据时,比如每个节点最多放5万数据,结果你每个partition 是10万数据,那么就会把partition 中的数据写入磁盘上,5万数据在内存,5万在磁盘,进行保存。
而以上述这一切对于用户来说,都是完全透明的,也就是说,你不用去管RDD的数据存储在哪里,内存,还是磁盘,只要关注人你针对的RDD进行计算和处理等等操作即可。所以说,RDD的这种自动进行内存和磁盘之间权衡与切换的机制,就是RDD的弹性特点所在。
2.RDD在抽象上来说是一种元素集合,包含了数据,它是被分区的,分为多个分区,每个分区分布在不同的节点上,从而让RDD中的数据可以被并行操作。(分布式数据集)
一个分区,在逻辑上抽象代表了一个HDFS文件。但是它实际上是被分区的,分为多个分区,多个分区散落在Spark集群中,不同的节点上。比如说有90万数据,分为9个partitions,9个分区
3.RDD通常通过 Hadoop 上的文件,即HDFS文件或Hive表,来进行创建;有时也可以通过应用程序中的集合来创建。
Spark围绕着弹性分布数据集(RDD)的概念,RDD是一种容错的并行操作元素集合。创建RDD有两种方法:并行化 驱动程序中的现有集合,或者在外部存储系统(如共享文件系统,HDFS,HBase或提供Hadoop InputFormat的任何数据源)中引用数据集。
4.RDD最重要的特性是,提供了容错性,可以自动从失败节点中恢复过来。
即如果某个节点上的RDD partition,因为节点故障,导致数据丢失了,那么RDD会自动通过自己的数据来源重新计算partition。这一切对使用者是透明的。
Spark- Spark基本工作原理的更多相关文章
- 一图看懂hadoop Spark On Yarn工作原理
hadoop Spark On Yarn工作原理
- 49、Spark Streaming基本工作原理
一.大数据实时计算介绍 1.概述 Spark Streaming,其实就是一种Spark提供的,对于大数据,进行实时计算的一种框架.它的底层,其实,也是基于我们之前讲解的Spark Core的. 基本 ...
- 【原】Learning Spark (Python版) 学习笔记(三)----工作原理、调优与Spark SQL
周末的任务是更新Learning Spark系列第三篇,以为自己写不完了,但为了改正拖延症,还是得完成给自己定的任务啊 = =.这三章主要讲Spark的运行过程(本地+集群),性能调优以及Spark ...
- Spark Streaming初步使用以及工作原理详解
在大数据的各种框架中,hadoop无疑是大数据的主流,但是随着电商企业的发展,hadoop只适用于一些离线数据的处理,无法应对一些实时数据的处理分析,我们需要一些实时计算框架来分析数据.因此出现了很多 ...
- 4.Apache Spark的工作原理
Apache Spark的工作原理 1 Why Apache Spark 2 关于Apache Spark 3 如何安装Apache Spark 4 Apache Spark的工作原理 5 spark ...
- 2、Spark基本工作原理与RDD
一.基本工作原理 1.特点 分布式: 主要是基于内存(少数情况基于磁盘): spark与,MapReduce最大的不同在于迭代式计算: MR分为两个阶段,map和reduce,两个阶段完了我们,job ...
- 46、Spark SQL工作原理剖析以及性能优化
一.工作原理剖析 1.图解 二.性能优化 1.设置Shuffle过程中的并行度:spark.sql.shuffle.partitions(SQLContext.setConf()) 2.在Hive数据 ...
- Spark基本架构及原理
Hadoop 和 Spark 的关系 Spark 运算比 Hadoop 的 MapReduce 框架快的原因是因为 Hadoop 在一次 MapReduce 运算之后,会将数据的运算结果从内存写入到磁 ...
- Spark Streaming简介及原理
简介: SparkStreaming是一套框架. SparkStreaming是Spark核心API的一个扩展,可以实现高吞吐量的,具备容错机制的实时流数据处理. 支持多种数据源获取数据: Spark ...
- 第7章 Spark SQL 的运行原理(了解)
第7章 Spark SQL 的运行原理(了解) 7.1 Spark SQL运行架构 Spark SQL对SQL语句的处理和关系型数据库类似,即词法/语法解析.绑定.优化.执行.Spark SQL会先将 ...
随机推荐
- ArrayList remove注意事项
例子1: List<Integer>list=new ArrayList<>(); list.add(1); list.add(2); list.add(2); list.ad ...
- graph小案例
(小案例,有五个人他们参见相亲节目,这个五个人分别是0,1,2,3,4,号选手,计算出追随者年龄大于被追随者年龄的人数和平均年龄) scala> import org.apache.spark. ...
- C# virtual,override,new 整理
今天仔细学习了一下C#中virtual, override, new关键字,参考了网上的很多资料,现整理一下. Virtual: virtual 关键字用于修饰方法.属性.索引器或事件声明,并使它们可 ...
- 《TomCat与Java Web开发技术详解》(第二版) 第五章节的学习总结 ---- Servlet的高级用法
这一章节主要是介绍了Servlet技术的一些高级用法,如下是我自己的整理归纳 1.下载文件:即获取服务器文件,并把文件写入反馈给客户端 ServletContext.getResourceAsStre ...
- HTTP响应头缓存控制
在一般Web开发中,有时需要设置特殊的HTTP响应头阻止客户端(一般是浏览器)缓存(使用)该次请求的响应. 这时候大部分开发人员都是百度或谷歌几段代码复制粘贴即了事. 以下简述一下关于缓存控制的几种H ...
- CyclicBarrier的工作原理及其实例
CyclicBarrier是多线程中一个重要的类,主要用于线程组内部之间的线程的相互等待问题. 1.CyclicBarrier的工作原理 CyclicBarrier大致是可循环利用的屏障,顾名思义,这 ...
- poj1066(叉乘的简单应用)
做完了才发现,好像没有人和我的做法一样的,不过我怎么都觉得我的做法还是挺容易想的. 我的做法是: 把周围的方框按顺时针编号,然后对于每一条边,如果点出现在边的一侧,则把另一侧所有的点加1,这样最后统计 ...
- git reset和git revert
1 git reset commit-id 直接回到某次提交,该次commit-id之后的提交都会被删除. --hard,将index和本地都恢复到指定的commit版本. 2 git revert ...
- Javascript对数组的操作--转载
在jquery中处理JSON数组的情况中遍历用到的比较多,但是用添加移除这些好像不是太多. 今天试过json[i].remove(),json.remove(i)之后都不行,看网页的DOM对象中好像J ...
- [php][随机数]曲线式的随机
数学函数原型: y = max / (x ^ 2) 函数图像(来自google): y = 100 / x ^ (-2) 其中y为随机结果,max为最大值且max>1,x为随机数, 两个参数: ...