由于之前因为毕业设计、答辩以及其他一些原因,耽搁了复习笔记很久了,导致迟迟没有更新;当然,这段时间学习还是不能落下的,依旧需要每天敲敲代码、学习一点新知识来巩固提高自己的知识水平,最近几篇我就会重点去介绍Spark。
一、Spark初始
Spark与MapReduce的区别
都是分布式计算框架,Spark基于内存,MR基于HDFS。Spark处理数据的能力一般是MR的十倍以上,Spark中除了基于内存计算外,还有DAG有向无环图来切分任务的执行先后顺序。
Spark运行模式
- Local:多用于本地测试,如在idea中写程序测试等。
- Standalone:是Spark自带的一个资源调度框架,支持完全分布式。
- Yarn:Hadoop生态圈中的一个资源调度框架,并且Spark是基于Yarn来计算的。
- Mesos:也是一种资源调度框架,了解不多。
二、Spark Core
1、RDD
定义:弹性分布式数据集。
五大特性:
-
RDD是由一系列的partition组成的.
-
函数是作用在每一个partition(split)上的。
-
RDD之间有一系列的依赖关系(宽依赖和窄依赖)。
-
分区器是作用在K,V格式的RDD上。