spark (四) RDD概念
1. RDD基本概念
RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据处理模型。代码中是一个抽象类,它代表了一个弹性的、不可变的、可分区、里面的元素可并行计算的集合。
1.1 弹性
- 存储的弹性:内存和磁盘的自动切换
- 因为内存是有限制的,如果使用的内存超过了一定的阈值,会将部分数据切换到磁盘上
- 容错的弹性:数据丢失可以自动回复
- 计算的弹性:计算出错重试机制
- 分片的弹性:可以根据需求重新分片
1.2 分布式
- 数据存储在大数据集群的不同节点上
1.3 数据集
- RDD封装了计算逻辑,并不保存数据
1.4 数据抽象
- RDD是一个抽象类,具体需要子类来实现
1.5 不可变
- RDD封装了计算逻辑,是不可以改变的。想要改变只能产生新的RDD,在新的RDD里面封装计算逻辑(装饰器)
1.6 可分区、并行计算
RDD是一个逻辑上虚拟的集合,内部会拆分成多个partition 的 task,分配给executor

2. WordCount为例,看RDD特性
- RDD的数据处理方式类似于IO流,也有装饰者模式
- RDD的数据只有在调用
collect方法时,才会真正执行业务逻辑的计算操作,前面都是在叠buff - 与IO流能暂时缓存一部分数据(缓冲区)不同,RDD中间不缓存任何数据

3. RDD的五大属性
Internally, each RDD is characterized by five main properties:
- A list of partitions
- A function for computing each split
- A list of dependencies on other RDDs
- Optionally, a Partitioner for key-value RDDs (e.g. to say that the RDD is hash-partitioned)
- Optionally, a list of preferred locations to compute each split on (e.g. block locations for an HDFS file)
3.1 分区列表
如上图,由于RDD内直接分区了,所以需要分区列表
3.2 计算逻辑 compute
针对该RDD下的所有分区,compute都是一样的
3.3 和其他RDD的依赖关系
3.4 (可选) 分区器
3.5 (可选) executor节点亲和
如下,其实任务发送给上面的

4. RDD执行原理(yarn环境)
4.1 启动Yarn集群环境

4.2 Spark通过申请资源创建调度节点和计算节点

4.3 Spark框架根据需求将计算逻辑根据分区划分成不同的任务。此处会将task放置到 任务池中

4.4 调度节点将任务根据计算节点状态发送到对应的计算节点进行计算

从以上流程可以看出RDD在整个流程中主要用于将逻辑进行封装,并生成Task发送给Executor节点执行计算。
spark (四) RDD概念的更多相关文章
- spark实验(四)--RDD编程(1)
一.实验目的 (1)熟悉 Spark 的 RDD 基本操作及键值对操作: (2)熟悉使用 RDD 编程解决实际具体问题的方法. 二.实验平台 操作系统:centos6.4 Spark 版本:1.5.0 ...
- Spark核心—RDD初探
本文目的 最近在使用Spark进行数据清理的相关工作,初次使用Spark时,遇到了一些挑(da)战(ken).感觉需要记录点什么,才对得起自己.下面的内容主要是关于Spark核心-RDD的相关 ...
- 关于Spark中RDD的设计的一些分析
RDD, Resilient Distributed Dataset,弹性分布式数据集, 是Spark的核心概念. 对于RDD的原理性的知识,可以参阅Resilient Distributed Dat ...
- RDD概念、特性、缓存策略与容错
一.RDD概念与特性 1. RDD的概念 RDD(Resilient Distributed Dataset),是指弹性分布式数据集.数据集:Spark中的编程是基于RDD的,将原始数据加载到内存变成 ...
- spark中RDD的转化操作和行动操作
本文主要是讲解spark里RDD的基础操作.RDD是spark特有的数据模型,谈到RDD就会提到什么弹性分布式数据集,什么有向无环图,本文暂时不去展开这些高深概念,在阅读本文时候,大家可以就把RDD当 ...
- [转]Spark学习之路 (三)Spark之RDD
Spark学习之路 (三)Spark之RDD https://www.cnblogs.com/qingyunzong/p/8899715.html 目录 一.RDD的概述 1.1 什么是RDD? ...
- Spark学习之路 (三)Spark之RDD
一.RDD的概述 1.1 什么是RDD? RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变.可分区.里面的元素 ...
- Spark系列-核心概念
Spark系列-初体验(数据准备篇) Spark系列-核心概念 一. Spark核心概念 Master,也就是架构图中的Cluster Manager.Spark的Master和Workder节点分别 ...
- Spark Streaming核心概念与编程
Spark Streaming核心概念与编程 1. 核心概念 StreamingContext Create StreamingContext import org.apache.spark._ im ...
- Spark中RDD的常用操作(Python)
弹性分布式数据集(RDD) Spark是以RDD概念为中心运行的.RDD是一个容错的.可以被并行操作的元素集合.创建一个RDD有两个方法:在你的驱动程序中并行化一个已经存在的集合:从外部存储系统中引用 ...
随机推荐
- Java中重写equals并重写hashcode方法的描述
1.两个对象的hashCode()相同,equals()不一定为true (1)重写equals()的同时,重写hashCode() a.定义Person类,私有属性name,age:有参构造,set ...
- C语言刷题小知识点
力扣返回二维数组 int **spiralMatrix(int m, int n, struct ListNode *head, int *returnSize, int **returnColumn ...
- CentOS7.4 安装 11204 ASM GI 组件时:ohasd failed to start
前段时间某客户要求在CENTOS7上部署Oracle 11.2.0.4 single instance && ASM存储,遇到一个比较头疼的问题,好在已经处理完了. 在图形化执行安装程 ...
- DOS特殊字符的转义方法
- 题解:USACO23OPEN-Silver
题解:USACO23OPEN-Silver T1 Milk Sum 给定一个长度为 \(N\) 的序列 \(a_1,a_2,...,a_n\),现在给出 \(Q\) 次操作每次将 \(a_x\) 修改 ...
- C# 删除Word文档中的段落
在编辑Word文档时,我们有时需要调整段落的布局.删除不必要的段落以优化文档的结构和阅读体验.本文将通过以下3个简单示例演示如何使用免费.NET库删除Word文档中的段落 . C# 删除Word中的指 ...
- 安卓微信小程序开发之“蓝牙”
一.写在前面 在微信当中是支持两种蓝牙模式,分别是"经典蓝牙--BT"和"低功耗蓝牙--BLE".通常在和外围单片机设备进行连接的时候用的是低功耗蓝牙这个模式, ...
- 记录:coding持续集成之自动发布项目
把一个SpringBoot项目在DevOps一站式研发平台coding编译成jar远程部署到服务器分为几步?答:3步. 1.编译生成构建产物-jar包: 2.SCP 上传到远端服务器: 3.远程执行s ...
- 干货分享:Air700ECQ的硬件设计,第一部分
一.绪论 Air700ECQ是一款基于移芯EC716E平台设计的LTE Cat 1无线通信模组.支持移动双模FDD-LTE/TDD-LTE的4G远距离无线传输技术.以极小封装,极高性价比,满足Io ...
- Transformers包使用记录
Transformers是著名的深度学习预训练模型集成库,包含NLP模型最多,CV等其他领域也有,支持预训练模型的快速使用和魔改,并且模型可以快速在不同的深度学习框架间(Pytorch/Tensorf ...