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基本工作原理的更多相关文章

  1. 一图看懂hadoop Spark On Yarn工作原理

    hadoop Spark On Yarn工作原理

  2. 49、Spark Streaming基本工作原理

    一.大数据实时计算介绍 1.概述 Spark Streaming,其实就是一种Spark提供的,对于大数据,进行实时计算的一种框架.它的底层,其实,也是基于我们之前讲解的Spark Core的. 基本 ...

  3. 【原】Learning Spark (Python版) 学习笔记(三)----工作原理、调优与Spark SQL

    周末的任务是更新Learning Spark系列第三篇,以为自己写不完了,但为了改正拖延症,还是得完成给自己定的任务啊 = =.这三章主要讲Spark的运行过程(本地+集群),性能调优以及Spark ...

  4. Spark Streaming初步使用以及工作原理详解

    在大数据的各种框架中,hadoop无疑是大数据的主流,但是随着电商企业的发展,hadoop只适用于一些离线数据的处理,无法应对一些实时数据的处理分析,我们需要一些实时计算框架来分析数据.因此出现了很多 ...

  5. 4.Apache Spark的工作原理

    Apache Spark的工作原理 1 Why Apache Spark 2 关于Apache Spark 3 如何安装Apache Spark 4 Apache Spark的工作原理 5 spark ...

  6. 2、Spark基本工作原理与RDD

    一.基本工作原理 1.特点 分布式: 主要是基于内存(少数情况基于磁盘): spark与,MapReduce最大的不同在于迭代式计算: MR分为两个阶段,map和reduce,两个阶段完了我们,job ...

  7. 46、Spark SQL工作原理剖析以及性能优化

    一.工作原理剖析 1.图解 二.性能优化 1.设置Shuffle过程中的并行度:spark.sql.shuffle.partitions(SQLContext.setConf()) 2.在Hive数据 ...

  8. Spark基本架构及原理

    Hadoop 和 Spark 的关系 Spark 运算比 Hadoop 的 MapReduce 框架快的原因是因为 Hadoop 在一次 MapReduce 运算之后,会将数据的运算结果从内存写入到磁 ...

  9. Spark Streaming简介及原理

    简介: SparkStreaming是一套框架. SparkStreaming是Spark核心API的一个扩展,可以实现高吞吐量的,具备容错机制的实时流数据处理. 支持多种数据源获取数据: Spark ...

  10. 第7章 Spark SQL 的运行原理(了解)

    第7章 Spark SQL 的运行原理(了解) 7.1 Spark SQL运行架构 Spark SQL对SQL语句的处理和关系型数据库类似,即词法/语法解析.绑定.优化.执行.Spark SQL会先将 ...

随机推荐

  1. 微信公众号开发---上传临时素材到公众号遇到的问题:"errcode":41005,"errmsg":"media data missing

    1.上传临时素材到公众号遇到的问题:"errcode":41005,"errmsg":"media data missing 解决办法:因为php版本 ...

  2. centos7.2 开发 部署 .net core

    1.centos7.2 安装 nginx官方文档:http://nginx.org/en/linux_packages.html#mainline 创建nginx.repo 文件 Pre-Built ...

  3. 在eclipse创建和myeclipse一样结构的web项目

    之前一直使用myeclipse,现在换成eclipse,但是创建的新项目让我很不习惯,下面这个方法可以解决. 创建好的项目结构如下图所示,不过看着还是很别扭,我们window→show view→ot ...

  4. Linux nginx部署laravel

    Composer Composer 是 php 的一个依赖管理工具.它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们.运行 Composer 需要 PHP 5.3.2+ 以上版本.一些敏感 ...

  5. poj3708(公式化简+大数进制装换+线性同余方程组)

    刚看到这个题目,有点被吓到,毕竟自己这么弱. 分析了很久,然后发现m,k都可以唯一的用d进制表示.也就是用一个ai,和很多个bi唯一构成. 这点就是解题的关键了. 之后可以发现每次调用函数f(x),相 ...

  6. [原创]将本地代码共享到github的操作步骤

    将本地代码共享到github的操作步骤 本地代码目录执行如下命令,初始化为git仓库. git init 到github上新建一个仓库,假设为https://github.com/sky0014/sk ...

  7. EasyDSS流媒体服务器软件对数据库Sqlite3和MySQL的同时支持说明

    EasyDSS流媒体音视频直播与点播服务器软件,是一套提供一站式的转码.点播.直播.检索.回放.录像下载服务的高性能RTMP/HLS/HTTP-FLV流媒体服务,极大地简化了流媒体相关业务的开发和集成 ...

  8. 九度OJ 1335:闯迷宫 (BFS)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:1782 解决:483 题目描述: sun所在学校每年都要举行电脑节,今年电脑节有一个新的趣味比赛项目叫做闯迷宫. sun的室友在帮电脑节设计 ...

  9. 我的Android进阶之旅------> Android为TextView组件中显示的文本添加背景色

    通过上一篇文章 我的Android进阶之旅------> Android在TextView中显示图片方法 (地址:http://blog.csdn.net/ouyang_peng/article ...

  10. oracle chain

    [oracle@tyger dbs]$ sqlplus / as sysdba SQL*Plus: Release 10.2.0.1.0 - Production on Tue May 6 13:02 ...