文章目录
- sparkcore
- 1.rdd是不可变的,只能通过计算/操作得到一个新的rdd
- 2.rdd五大特性:
- 3.创建rdd的三种方式:
- 4.saprk中落地文件的个数和什么有关系:
- 5.转换算子和action算子有什么区别:
- 6.常用的转换算子:
- 7.常用的action算子:
- 8.sparkcore核心概念:
- 9.spark执行流程:
- 10.spark执行架构补充:每个spark作业都有自己的executor进程,好处是:1.资源隔离 2.调度隔离
- 11.rdd持久化操作:数据不用从头计算,提升计算效率
- 12.持久化存储级别:
- 13.移除rdd持久化:
- 14.依赖关系:不同依赖关系会导致生成rdd分区数发生变化
- 15.如何划分stage:
- 16.如何调整计算并行度:
- 17.引起shuffle的算子:
sparkcore
1.rdd是不可变的,只能通过计算/操作得到一个新的rdd
2.rdd五大特性:
1.rdd底层存储一系列partition
2.针对rdd做计算/操作其实就是对rdd底层的partition进行操作
3.rdd之间的依赖关系(血缘关系)rdda=》rddb=》rddc
4.Partitioner(分区器):kv类型的rdd
5.数据本地性:减少网络io
3.创建rdd的三种方式:
1.已经存在的集合中
2.其他数据存储系统
1.外部数据源:hdfs、local、hbase、s3、cos
2.数据文件类型:text file 、SequenceFile。。。
3.从已经存在的rdd转换生产一个新的rdd
4.saprk中落地文件的个数和什么有关系:
rdd里面有多少个partition,文件落地就有多少个文件
5.转换算子和action算子有什么区别:
转换算子都是懒加载的
6.常用的转换算子:
map、flatmap、filter、mappartitions、distinct、
groupby、sortby、reducebykey、mapvalues
7.常用的action算子:
foreach
foreachpartition
8.sparkcore核心概念:
application包含一个driver和n个executor
一个application包含一个到n个job
一个job包含一个到n个stage
一个stage包含一个到n个task,task和partition一一对应
9.spark执行流程:
1.spark作业运行在集群上有一系列进程
2.SparkContext去协调这些进程(进程:1 driver executors)
3.运行spark作业:
1.sc去连接 cluster manager
2.cluster manager 给spark作业分配资源
3.spark一旦连接上cluster,启动executor计算和存储数据
4.sc发送代码给ececutor sc发送task 去executor上运行
10.spark执行架构补充:每个spark作业都有自己的executor进程,好处是:1.资源隔离 2.调度隔离
11.rdd持久化操作:数据不用从头计算,提升计算效率
1.persist() or cache() 【不是action算子,是懒加载的 cache算子底层调用的就是persist】
2.触发action之后会对rdd数据进行持久化(对rdd持久化就是对rdd里面的分区做持久化)
12.持久化存储级别:
1.首选 MEMORY_ONLY
2.次选 MEMORY_ONLY_SER
1.java serialization:by default
2.kryo:注册 class
13.移除rdd持久化:
1.saprk本身会根据lru最近最少使用原则自动取消持久化
2.手动 :RDD.unpersist(true) 立即齿形的eager
14.依赖关系:不同依赖关系会导致生成rdd分区数发生变化
1.宽依赖
1.一个父rdd的partition会被子rdd的partition使用多次
2.会产生shuffle 会产生新的stage
2.窄依赖
1.一个父rdd的partition至多被子rdd的partition使用一次
2.不会产生shuffle,都在一个stage里面
15.如何划分stage:
sparkcore产生宽依赖就会划分stage
算子引起shfulle就会划分stage
一个shuffle算子会划分2个stage
16.如何调整计算并行度:
coalesce:一般用于减少rdd分区数 【窄依赖算子,不会引起shuffle】
repartition:增加rdd的分区数 底层实现:coalesce(num,shuffle=true)
17.引起shuffle的算子:
1.xxxbykey
2.repartition coalesce(不会引起shuffle)
3.join:map join不会引起shuffle
reduce join/common join 引起shuffle