- 什么是RDD?RDD有什么特点?能否携带数据?
RDD:叫做弹性分布式数据集
特点:不可变,可分区,里面的元素可以并行计算的集合。
不能携带数据,类似于java当中的接口,携带的是元数据。
- 依赖关系
窄依赖:父RDD的一个分区只能被子RDD的一个分区所依赖=》独生子女
宽依赖:父RDD的一个分区会被子RDD的多个分区所依赖=》超生子女
- 分区方式
非key,value对的数据,分区方式为None;
Key,value对的数据,默认分区方式也为None,但是,可以指定分区方式。
- RDD算子分类
RDD算子一共分为两类,一类是transformation(转换算子),一类是action(执行算子)。
Transformation:转换算子,惰性计算,只做连接不运算,只有遇到action才会带动转换算子进行运算。
Action:执行算子,带动转换算子运算并将结果进行输出。
- yarn模式
Yarn模式分为两种,一种是yarn on client;一种是yarn on cluster。
Yarn on client:driver运行在当前机器上。一般都是学习测试使用。
Yarn on cluster:driver运行在集群当中的某一台机器上。生产开发使用。
- stage划分
根据RDD的执行流程,构建DAG有向无环图,构建好图后,采用回溯方法,从后往前推,遇到窄依赖包含到当前stage中,遇到宽依赖就断开,形成stage。
- 术语总结
一个DAG=多个stage
一个stage=一个taskSet
一个taskSet=多个task
- 如何区分转换算子、执行算子?
转换算子:返回值类型是RDD的就是转换算子。
执行算子:返回值类型不是RDD的就是执行算子。
- local模式
Local:表示本地开启一个线程去执行任务。
Local[N]:N是一个具体的数字,表示本地开启N个线程去执行任务。
Local[*]:*是一个固定的,表示本地有多大资源就用多大资源。



