设为首页 加入收藏

TOP

28 讲、Spark 基本工作原理与 RDD
2019-02-17 01:15:00 】 浏览:66
Tags:Spark 基本 工作 原理 RDD

需要多看几遍!!!

Spark 基本工作原理:
  1. 分布式
  2. 主要基于内存(少数情况基于磁盘)
  3. 迭代式计算
Spark 工作流程

客户端 (Client),我们在本地编写了 spark 程序,然后你必须在某台能够连接 spark 的机器上提交修改 spark 程序。

Spark 集群:程序提交到 spark 集群上运行,运行时先要从 Hadoop Hdfs Hive 上读取数据,读取到的数据存储在不同的节点上,称之为分布式,主要是基于内存存储,会加快处理速度,处理后的数据可能会移动到其他节点上的内存里继续处理(迭代式)。

读取数据:从 hadoop hdfs Hive 上读取

spark 与 mapreduce 最大的不同在于,迭代式计算模型,MapReduce 分为两个阶段,map 和 reduce 阶段,两个阶段完了,就结束了,所以我们在一个 job 里能做的处理很有限。spark 计算模型可以分为 n 个阶段,因为它是基于内存迭代式的,我们可以处理 n 个阶段。

所有计算操作,都是针对多个节点上的数据,进行并行计算操作的。

spark 处理完后的数据存储在 Hadoop 的 HDFS 和 Hive 上,还有的存储在 Mysql Hbase DB 上,或者直接把结果返回客户端(运行 spark 程序的机器和进程)

RDD 弹性分布式数据集的特点:

为什么被称为分布式数据集?数据从哪里来?
一个 RDD 在逻辑上抽象地代表了一个 HDFS 文件,但实际上是被分区的,90w 数据存放在 9 个节点上

  1. RDD 是 spark 提供的核心抽象,全称为,即弹性分布式数据集
  2. RDD 在抽象上来说是一种元素集合,包含了数据。它是被分区的,分为多个分区,每个分区分布在集群中的不同节点上,从而让 RDD 上的数据可以被并行操作(分布式数据集)
  3. RDD 通常通过 Hadoop 上的文件,即 HDFS 文件或者 Hive 表来进行创建,有时也可以通过应用程序的集合来进行创建。
  4. 弹性数据集的解释:RDD 自动在内存和磁盘切换,内存不够时,通过磁盘来存储
  5. RDD 最重要的特性就是提供了容错性,可以自动从节点失败中恢复过来,即如果某个节点上的 RDD partion ,因为节点故障,导致数据丢了,那么 RDD 会自动通过自己的数据来源来重新计算该 partion,这一切对于使用者是透明的。

每一批节点上的每一批数据实际上就是一个 RDD,一个 RDD 是分布式的,所以数据都散落在节点上,每个节点都存储了 RDD 的部分 partion

Spark 开发
  1. 离线批处理 / 延迟性的交互式数据处理
  2. SQL 查询
  3. 实时计算

底层都是 RDD 和计算操作

Spark 的核心编程是什么?
  1. 首先,定义初始的 RDD ,你要定义第一个 RDD 是从哪里读取数据,hdfs,Linux 本地文件,程序中的集合,hive 表
  2. 定义对 RDD 的计算操作,这个在 spark 里称之为算子,map reduce flatmap 等
  3. 第三其实就是循环往复的过程,第一个计算完了以后,数据就可能到了新的一批节点上,也就是变成一个新的 RDD
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇spark1学习-tang 下一篇Spark生态圈

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目