【sparkcore整理】

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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值