Spark 存储系统

Spark 存储系统

存储系统,与调度系统一样,它也是 Spark 重要的基础设施之一,前面学了 Shuffle 管理、RDD Cache 和广播变量,这些功能与特性,对 Spark 作业的执行性能有着至关重要的影响。而想要实现这些功能,底层的支撑系统正是 Spark 存储系统。

学习和熟悉存储系统,不单单是为了完善我们的知识体系,它还能直接帮你更好地利用 RDD Cache 和广播变量这些特性。在未来,这些知识也能为你做 Shuffle 的调优奠定良好的基础。

服务对象

笼统地说,Spark 存储系统负责维护所有暂存在内存与磁盘中的数据,这些数据包括 Shuffle 中间文件、RDD Cache 以及广播变量。

对于上述三类数据,我们并不陌生。我们先回顾一下什么是 Shuffle 中间文件,在 Shuffle 的计算过程中,Map Task 在 Shuffle Write 阶段生产 data 与 index 文件。接下来,根据 index 文件提供的分区索引,Shuffle Read 阶段的 Reduce Task 从不同节点拉取属于自己的分区数据。而 Shuffle 中间文件,指的正是两个阶段为了完成数据交换所仰仗的 data 与 index 文件。

RDD Cache 指的是分布式数据集在内存或是磁盘中的物化,它往往有利于提升计算效率。广播变量上它的优势在于以 Executors 为粒度分发共享变量,从而大幅削减数据分发引入的网络与存储开销。

存储系统的构成

Driver 端的BlockManagerMaster,和Executors 端的BlockManager共同实现了存储系统的构成

image-20240731092407800

BlockManagerMaster 与 BlockManager 之间交换的信息,实际上就是 Executors 之上数据的状态。说到这里,你可能会问:“既然 BlockManagerMaster 的信息都来自于 BlockManager,那么 BlockManager 又是从哪里获取到这些信息的呢?”要回答这个问题,我们还要从 BlockManager 的职责说起。

这里我们先回答一下为什么叫Block,不管是在内存、还是在磁盘,这些数据都是以数据块(Block

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值