spark架构

Spark是一种快速、通用的大数据分析引擎,以其内存计算能力著称。它由Spark Core、Spark SQL、Spark Streaming和Spark MLlib组成,支持Java、Python和Scala API。RDD作为核心数据抽象,具备分区、只读、依赖和缓存等特性,通过血统关系实现容错。Spark的窄依赖和宽依赖定义了数据计算的依赖关系,而缓存机制如cache和persist则提高了计算效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • Spark是一种快速、通用、可扩展的大数据分析引擎
  • Spark是基于内存计算的大数据并行计算框架
    在这里插入图片描述
    Spark Core :实现了 Spark 的基本功能,包含任务调度、内存管理、错误恢复、与存储系统 交互等模块
    Spark SQL:使用 SQL 或者 Apache Hive 版本的 SQL 方言(HQL)来查询数据,Spark SQL 支持多种数据源,比 如 Hive 表、Parquet 以及 JSON 等。
    Spark Streaming:是 Spark 提供的对实时数据进行流式计算的组件

Spark MLlib:提供常见的机器学习(ML)功能的程序库

Spark特点

  • 快:基于内存来高效处理数据流
  • 易用:Spark支持Java、Python和Scala的API
  • 通用:Spark提供了统一的解决方案
  • 兼容性:Spark可以非常方便地与其他的开源产品进行融合

RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象。

RDD特点 :

  • 分区:逻辑上是分区的
  • 只读
  • 依赖
  • 缓存
  • CheckPoint

为什么会产生RDD?

  • 传统的MapReduce 虽然有自动容错,平衡负载和拓展性优点。缺点:采用了非循环流动模型,使得在迭代计算中要进行大量的磁盘IO操作,RDD解决了这一缺点的抽象方法
  • RDD以函数式编程来操作集合,进行并行操作,可以把RDD的结果进行缓存,方便进行多次重用,避免重复计算

窄依赖:窄依赖指的是每一个父RDD的Partition最多被子RDD的一个Partition使用

宽依赖:宽依赖指的是多个子RDD的Partition会依赖同一个父RDD的Partition

血统的好处: 当前某一个rdd的分区数据丢失了,后期可以通过血统这一层关系重新计算恢复得到

rdd的缓存

  • 第一种就是cache、第二种就是persist
    当然并不是这2个方法执行后就立即触发缓存操作,后面需要有一个action操作,才会触发缓存的执行

  • cache:默认是把数据缓存在内存中,其本质是调用了persist方法

  • persist:它可以把数据缓存在磁盘中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值