Spark中的RDD


Rdd是弹性分布式数据集,是spark中最基本的计算(逻辑)抽象,它代表一个不可变,可分区,里面的元素可并行计算的集合

1.Rdd弹性

1)存储的弹性:自动进行内存和磁盘数据存储的切换
spark优先把数据放到内存中,如果内存放不下,就会放到磁盘中

2)自动切换容错的弹性:基于血统的高容错机制
在Rdd进行转换的时候,会形成rdd依赖链,(即创建第二个rdd时需要使用第一个rdd作为参数,第二个rdd又作为第三个rdd的参数),每个rdd都会保存上下级依赖关系,当某一个rdd失效的时候,可由其他健在的rdd继续执行,不会造成整个任务原地去世

3)Task如果失败会自动进行特定次数的重试
rdd的计算任务如果挂了,会自动尝试复活,默认尝试次数为4次,如果还没活过来,就彻底凉了
4)stage如果失败会自动进行特定次数的重试
如果Job的某个Stage阶段计算失败,框架也会自动进行任务的重新计算,默认次数也是4次。

5) Checkpoint和Persist可主动或被动触发
RDD可以通过Persist持久化将RDD缓存到内存或者磁盘,当再次用到该RDD时直接读取就行。也可以将RDD进行检查点,检查点会将数据存储在HDFS中,该RDD的所有父RDD依赖都会被移除。

6) 数据调度弹性
Spark把这个JOB执行模型抽象为通用的有向无环图DAG,可以将多Stage的任务串联或并行执行,调度引擎自动处理Stage的失败以及Task的失败。

7) 数据分片的高度弹性
​ 可以根据业务的特征,动态调整数据分片的个数,提升整体的应用执行效率。

总结: 存储的弹性:内存与磁盘的

自动切换容错的弹性:数据丢失可以

自动恢复计算的弹性:计算出错重试机制

分片的弹性:根据需要重新分片

2.不可变

源数据不会被修改,如果要改变,会重新创建一个,保证源数据不丢失

3.可分区

使用分区,不同分区可并行计算,提高效率,每个分区发给一个executor

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值