一、Spark基本工作原理
- 分布式
- 主要基于内存(少数情况基于磁盘)
- 迭代式计算
- 画图详解Spark的工作原理,如下:
二、RDD以及其特点
- RDD是Spark提供的核心抽象,全称为Resillient Distributed Dataset,即弹性分布式数据集。
- RDD在抽象上来说是一种元素集合,包含了数据。它是被分区的,分为多个分区,每个分区分布在集群中的不同节点上,从而让RDD中的数据可以被并行操作。(分布式数据集)
- RDD通常通过Hadoop上的文件,即HDFS文件或者Hive表,来进行创建;有时也可以通过应用程序中的集合来创建。
- RDD最重要的特性就是,提供了容错性,可以自动从节点失败中恢复过来。即如果某个节点上的RDD partition,因为节点故障,导致数据丢了,那么RDD会自动通过自己的数据来源重新计算该partition。这一切对使用者是透明的。
- RDD的数据默认情况下存放在内存中的,但是在内存资源不足时,Spark会自动将RDD数据写入磁盘。(弹性)
- 画图详解RDD的特点:
3、什么是Spark开发?
- 核心开发:离线批处理 / 延迟性的交互式数据处理
- SQL查询:底层都是RDD和计算操作
- 实时计算:底层都是RDD和计算操作
Spark的核心编程是什么?就是:
- 第一:定义初始的RDD,就是说,你要定义第一个RDD是从哪里,读取数据,hdfs、linux本地文件、程序中的集合。
- 第二:定义对RDD的计算操作,这个在spark里称之为算子,map、reduce、flatMap、groupByKey,比mapreduce提供的map和reduce强大的太多太多了。
- 第三:其实就是循环往复的过程,第一个计算完了以后,数据可能就会到了新的一批节点上,也就是变成一个新的RDD。然后再次反复,针对新的RDD定义计算操作…
- 第四:最后就是获得最终的数据,将数据保存起来。
对以前的知识回顾,加深基础知识!
学习来自:中华石杉老师——Spark从入门到精通278讲
每天进步一点点,也许某一天你也会变得那么渺小!!!