一、架构图
从物理部署层面上来看,Spark主要分为两种类型的节点,Master节点和Worker节点,Master节点主要运行集群管理器的中心化部分,所承载的作用是分配Application到Worker节点,维护Worker节点,Driver,Application的状态。Worker节点负责具体的业务运行。
二、Spark Core
RDD概念
RDD(Resilient Distributed Dataset)叫做分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变、可分区、里面的元素可并行计算的集合。
RDD支持两种操作:转化操作(transformation)和行动操作(action)。
Spark采用惰性计算模式,RDD只有第一次在一个行动操作中用到时,才会真正计算。
RDD属性
- 一组分片(Partition):数据集的基本组成单位,每个分片都会被当成一个计算任务(并行度);
- 一个计算每个分区的函数:RDD的计算是以分片为单位的,每个RDD都会实现compute函数以达到这个目的,通过该函数获取当前的RDD;
- RDD之间的依赖关系:RDD前后依赖关系;
- 一个Partitioner:即RDD的分片函数,一个是基于哈希的HashPartitioner,另外一个是基于范围的RangePartitioner。只有对于于key-value的RDD,才会有Partitioner;
- 一个列表:存储存取每个Partition的优先位置(preferred location);
cache、persist、checkpoint的区别:
1)cache底层调用的是persist方法,存储等级只可以是:memory only;
2)pe