🔔
BigData10:Spark
- Spark只需一次磁盘读写,大部分处理在内存中进行。
一、Spark框架
1.1 运行架构
- DAG(Directe Acyclic Graph)有向无环图
1.2 启动模式
1.3 Yarn-Cluster运行模式
二 Spark运行架构本质
2.1 运行过程
三 RDD
- 弹性分布数据集(Resilient Distributed Dataset)RDD
- RDD操作分为transformations和actions
- Transformations :RDD —>RDD
- Actions :RDD —>Result
四 Spark专业术语
五 RDD依赖关系
5.1、窄依赖(Narrow Dependency)
- 一个父RDD的一个Partition被子RDD的一个Partition使用
5.2、宽依赖(Shuffle Dependency)
- 一个父RDD的Partition被多个子RDD的Partition使用
5.3 窄依赖 VS 宽依赖
六 Shuffle
- Shuffle阶段设计磁盘IO、网络传输、内存使用等多种资源调用,执行效率影响整个作业的执行效率,大部分优化也是针对Shuffle阶段进行的。
- Spark作业Map阶段的Shuffle称为Shuffle Write,Reduce阶段Shuffle称为Shuffle Read
6.1、Shuffle Write实现
- 优缺点
- 实现简单,小数量级别数据处理操作方便
- 产生小文件过多,内存利用效率低。大量随机读写造成磁盘IO性能下降
- 0.8版本以后就不使用了
- 优缺点
- 优点:顺序读写大幅度提高磁盘IO性能,不会产生过多小文件降低文件缓存占用内存空间大小,提高内存使用效率
- 缺点:多了一次粗粒度排序