Spark学习03(Spark任务提交流程+宽窄依赖)

Spark编程-----二次排序和分组取TopN

RDD的宽窄依赖

宽依赖:每一个父RDD的Partition中的数据,都可能传输到子RDD的每个Partition中,这种错综复杂的关系,叫宽依赖

宽依赖划分依据:Shuffle

窄依赖:一个RDD对它的父RDD,只有一个一对一的依赖关系,也就是说,RDD的每个Partition,仅仅依赖于一个父RDD的Partition,一对一的关系叫窄依赖

窄依赖划分依据:没有Shuffle

Join有一个特殊情况,虽然Join是Shuffle算子,但是也会触发窄依赖

例如:
在这里插入图片描述

血缘

父RDD与子RDD直接存在依赖关系,这种依赖关系叫血缘,同时通过血缘关系,可以达到容错的机制(RDD之间的容错)

案例:基站解析案例

根据用户产生日志的信息,在那个基站停留时间最长
19735E1C66.log 这个文件中存储着日志信息
文件组成:手机号,时间戳,基站ID 连接状态(1连接 0断开)
lac_info.txt 这个文件中存储基站信息
文件组成 基站ID, 经,纬度
在一定时间范围内,求所用户经过的所有基站所停留时间最长的Top2
思路:
1.获取用户产生的日志信息并切分
2.用户在基站停留的总时长
3.获取基站的基础信息
4.把经纬度的信息join到用户数据中
5.求出用户在某些基站停留的时间top2

案例:统计某时间段学科访问量TopN

统计每个时间段内的学科访问量Top2

Spark任务提交流程(重点)

在这里插入图片描述

Checkpoint(检查点)

Checkpoint相当于缓存,但是 他保存的位置是磁盘,并且是永久性保存,会保存到HDFS,这个检查点,比较持久化来说,数据更安全,但是效率很低,一般在程序中设置的位置较少,没有持久化效率高

功能可以在集群运行时候,如果发生了宕机情况 ,可以通过检查点恢复检查点数据

应用场景:在特别复杂的RDD依赖中,可以使用检查点机制,因为依赖过多,可能会发生集群宕机情况,所以在适合的位置设置检查点是有必要的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值