大数据之spark面试题
一、RDD
1. 什么是RDD? "弹性"体现在哪里?RDD存在的缺陷?
(1)RDD(Resilient Distributed Dataset, 弹性分布式数据集)
(2)弹性体现:
- 自动进行内存和磁盘切换
- 基于lineage的高效容错
- task如果失败会特定次数的重试
- stage如果失败会自动进行特定次数的重试,而且只会计算失败的分片
- checkpoint(检查点)和persist(持久化)
- persist:内存或磁盘中对数据进行复用
- 数据调度弹性:DAG TASK和资源管理无关
- 数据分片的高度弹性repartion
(3)缺陷:
惰性计算,中间数据默认不会保存,每次动作操作都会对数据重复计算,某些计算量比较大的操作可能会影响到系统的运算效率。
2. RDD支持几种常见操作?分别是什么?有和区别?举例
(1)RDD支持两种操作:转化操作(Transformation算子)、行动操作(action算子)
(2)区别:
- 转化操作:返回一个新的RDD的操作,不会触发作业提交,是延迟计算,如map(),