当前位置: 首页 > news >正文

Spark(5):RDD概述

目录

0. 相关文章链接

1. 什么是RDD

2. RDD核心属性

3. 执行原理


0. 相关文章链接

 Spark文章汇总 

1. 什么是RDD

        RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是 Spark 中最基本的数据处理模型。代码中是一个抽象类,它代表一个弹性的、不可变、可分区、里面的元素可并行计算的集合。 

  • 弹性:
    • 存储的弹性:内存与磁盘的自动切换; 
    • 容错的弹性:数据丢失可以自动恢复; 
    • 计算的弹性:计算出错重试机制; 
    • 分片的弹性:可根据需要重新分片;
  • 分布式:数据存储在大数据集群不同节点上 
  • 数据集:RDD 封装了计算逻辑,并不保存数据 
  • 数据抽象:RDD 是一个抽象类,需要子类具体实现 
  • 不可变:RDD 封装了计算逻辑,是不可以改变的,想要改变,只能产生新的 RDD,在新的RDD 里面封装计算逻辑 
  • 可分区、并行计算 

2. RDD核心属性

  • 分区列表:RDD 数据结构中存在分区列表,用于执行任务时并行计算,是实现分布式计算的重要属性。
  • 分区计算函数:Spark 在计算时,是使用分区函数对每一个分区进行计算 
  • RDD 之间的依赖关系:RDD 是计算模型的封装,当需求中需要将多个计算模型进行组合时,就需要将多个 RDD 建立依赖关系
  • 分区器(可选):当数据为 KV 类型数据时,可以通过设定分区器自定义数据的分区 
  • 首选位置(可选):计算数据时,可以根据计算节点的状态选择不同的节点位置进行计算

3. 执行原理

        从计算的角度来讲,数据处理过程中需要计算资源(内存 & CPU)和计算模型(逻辑)。执行时,需要将计算资源和计算模型进行协调和整合。 

        Spark 框架在执行时,先申请资源,然后将应用程序的数据处理逻辑分解成一个一个的计算任务。然后将任务发到已经分配资源的计算节点上, 按照指定的计算模型进行数据计算。最后得到计算结果。 

RDD 是 Spark 框架中用于数据处理的核心模型,在 Yarn 环境中,RDD的工作原理如下所示:

1)    启动 Yarn 集群环境 

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

3)    Spark 框架根据需求将计算逻辑根据分区划分成不同的任务 

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

        从以上流程可以看出 RDD 在整个流程中主要用于将逻辑进行封装,并生成 Task 发送给 Executor 节点执行计算。


注:其他Spark相关系列文章链接由此进 ->  Spark文章汇总 


http://www.lryc.cn/news/34765.html

相关文章:

  • 面向对象 - 继承
  • 计算机网络的166个概念你知道几个 第十二部分
  • 【RabbitMQ】RabbitMQ各版本的兼容性与技术支持时限
  • 【Git】P5 Git 远程仓库(3)pull 发生冲突
  • 关于世界坐标系,相机坐标系,图像坐标系,像素坐标系的一些理解
  • 企业防护ddos的注意事项,你知道吗?
  • RocketMQ如何测试
  • SpringBoot中的bean注入方式和原理介绍
  • ESP32设备驱动-RFID-RC522模块驱动
  • SMETA认证有些客户是需要做窗口期的
  • 面向对象设计模式:创建型模式之原型模式
  • 三维重建(单目、双目、多目、点云、SFM、SLAM)
  • Java中的final和权限修饰符
  • MySQL的基本语句(SELECT型)
  • 日志服务搭建-ES-FileBeat-Kibana
  • 大数据架构设计与数据计算流程
  • 207. 课程表
  • 2023-03-08 mysql列存储数据库-查询执行过程分析
  • 各种激活函数的计算公式、图像以及实现代码
  • ArangoDB
  • MySQL8.0Linux安装及主从的搭建
  • 苹果新专利实现无线技术传输睡眠数据,蓝牙在智能家居中的应用
  • 银行数字化转型导师坚鹏:数字化转型为什么需要致良知与知行合一
  • Web前端学习:章三 -- JavaScript预热(二)
  • Excel绘制数据对比表格-表格可视化
  • 究竟是谁负了谁,来自底层测试的2022年终总结
  • C++——IO流
  • 网络 | UDP与TCP协议讲解 | TCP可靠性是怎样实现的?
  • JavaEE——简单介绍Thread类以及线程的基本操作
  • Java的数据库编程:JDBC