RDD的基本介绍及五大特性和五大特点

简介

RDD: 弹性分布式数据集

出现目的: 为了能够支持更加高效的迭代计算操作

背景说明:

早期的计算模型:  单机计算模型
    例如:  MySQL / Excel
    单机的计算模型
    仅适合于: 小量数据集的处理操作
    在计算操作的时候 只有一个进程, 在一个进程中通过不断的迭代完成最终的计算操作

随着不断的发展, 整个数据体量都在不断的增大, 原有单机的计算模型无法应对未来的数据处理需求, 怎么办? 分布式计算模型

核心: 采用多个节点处理,将一个任务拆分为N多个子任务, 分别运行在不同的节点上进行并行的处理, 各个节点计算完成后, 将结果汇总处理即可(分而治之)

诞生了相关的分布式计算框架: MR Spark  Flink  Storm ....

MR和spark都是一个大规模的分布式计算引擎, 都可以处理大规模的数据

MR存在的弊端:  1- 执行效率低  2- 迭代计算不方便

正因为MR存在的一些弊端, 对于市场, 迫切需要一款能够解决MR痛点的框架:
    1- 解决多次磁盘IO的问题, 整个计算尽可能的都在内存中处理, 减少IO
    2- 提供一个更加高效的迭代计算引擎

RDD的出现就是为了解决这些问题
  • MR的迭代模型
    在这里插入图片描述
  • Spark的迭代计算模型:
    在这里插入图片描述
    RDD是一个抽象的数据模型, RDD本身并不存储任何的数据, 仅仅是一个数据传输的管道, 在这个管道中, 作为使用者,只需要告知给RDD应该从哪里读, 中间需要进行什么样的转换逻辑操作, 以及最后需要将结果输出到什么位置即可, 一旦启动后, RDD会根据用户设定的规则, 完成整个处理操作

五大特性

1- (必须的)RDD是可分区的
2- (必须的)每一个RDD都是由一个计算函数产生的, 一个函数会作用在RDD的每一个分区上
3- (必须的)RDD之间都是存在着依赖关系
4- (可选的)对于KV类型的RDD, 是存在分区函数, 对于KV类型的RDD默认是基于Hash 分区方案
5- (可选的)移动数据不如移动计算(让计算程序离数据越近越好)

五大特点

1- RDD是可分区的: 分区是一种逻辑分区, 仅仅定义分区的规则, 并不是直接对数据进行分区操作, 因为RDD本身不存储数据
2- RDD是只读的: 每一个RDD都是不可变的, 如果想要改变, 处理后得到一个新的RDD, 原有RDD保持原样
3- RDD之间存在依赖关系: 每个RDD之间都有依赖关系的, 也称为血缘关系, 一般分为两种依赖关系(宽依赖和窄依赖)
4- RDD可以设置cache(缓存): 当计算过程中, 一个RDD被多个RDD所依赖, 可以将这个RDD结果缓存起来, 这样后续在使用这个RDD的时候, 直接获取数据即可, 不需要重新计算
5- RDD可以设置checkpoint(检查点): 与缓存类似, 都是可以将中间某一个RDD的结果保存起来, 只不过checkpoint支持持久化的保存, 不发生丢失

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

留不住的人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值