【博学谷学习记录】超强总结,用心分享|狂野大数据课程【RDD的基本介绍】的总结分析

1 什么是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会根据用户设定的规则, 完成整个处理操作

2 RDD的五大特性和五大特点

  • 五大特性:
1- (必须的) RDD可分区的
2- (必须的) 每一个RDD都是由一个计算函数产生的
3- (必须的) RDD之间是存在着依赖关系
4- (可选的) 对于KV类型的数据, 是存在分区函数,对于KV类型的RDD默认是基于Hash 分区方案
5- (可选的) 移动数据不如移动计算(让计算程序离数据越近越好)
  • RDD的五大特点:
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
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值