美文网首页大数据互联网科技机器学习与数据挖掘
Spark的分布式存储系统BlockManager全解析

Spark的分布式存储系统BlockManager全解析

作者: 华为云开发者联盟 | 来源:发表于2020-12-21 15:25 被阅读0次

摘要:BlockManager 是 spark 中至关重要的一个组件,在spark的运行过程中到处都有 BlockManager 的身影,只有搞清楚 BlockManager 的原理和机制,你才能更加深入的理解 spark。

§ BlockManager是什么?

BlockManager的作用?我理解是负责做RDD的存储,如何存下来给后续任务去使用。

其内部模块图如下:

图中看到有个memoryStore和DiskStore,说明把block做存储时,有内存和磁盘2种方式,存储后就都i通过这个Store去管理。

存储时以Block为单位,所以会有个映射用的数组

有一个负责和Driver的BlockManagerMaster通信的引用接口

还有个shuffClient,负责做 备份 和 下载, 即各executor之间会通过shuffClient来做block的传输。

§ BlockManager和Driver、executor的关系

其关系如图:

从中可以看到

blockManagerMaster在driver端生成

executor中生成blockManager,并负责向BMM注册。

spark中注册消息通过ActorSystem进行发送

§ 把块block 存入blockManager的流程

比如特殊的2个地方:

试图put时,会先看下该blockId是否有缓存,有的话直接取过来,否则就重新创建blockInfo

存储时会先判断内存是否充足,充足就写入memoryStore,如果不够会先释放再尝试放入。

§ 从blockManager中删除块

删除的操作没什么特别的,主要是会判断一下块的存储级别,选择从不同的store中取块。

§ shuffClient 下载block操作

BMMAC就是BlockManagerMasterActor,我当初瞎写的简称

注意点:当要取的块来自好几个BlockManager时, 把它打乱顺序,避免好几个BM同时从某一个BM上下载数据!

§ shuffeClinet的备份操作

BM为什么要备份他的block?书里作者没解释,我的理解是为了防止节点崩溃或者丢失,导致中间任务无法继续执行?

因为其他的BlockManager能接收的block可能有限,所以备份时可能会涉及多个block, 每次我们一样,从BMmaster那里拿一个 ***随机***的blockManager做备份,避免都往同一个上备份。

§ BlockManager和Executor、driver的关系:

从中可以看到

blockManagerMaster在driver端生成

executor中生成blockManager,并负责向BMM注册。

spark中注册消息通过ActorSystem进行发送

相关文章

  • 这样的spark你喜欢吗?

    BlockManager定义 BlockManager是Spark的分布式存储系统,与我们平常说的分布式存储系统是...

  • Spark的分布式存储系统BlockManager全解析

    摘要:BlockManager 是 spark 中至关重要的一个组件,在spark的运行过程中到处都有 Block...

  • BlockManager

    架构简介 BlockManager 是一个嵌入在 spark 中的 key-value型分布式存储系统,是为 sp...

  • [spark] BlockManager 解析

    概述 BlockManager是spark自己的存储系统,RDD-Cache、 Shuffle-output、br...

  • spark BlockManager 解析

    问题: spark Broadcast 广播变量存储在哪?存储在block manager上driver端:blo...

  • Spark思维导图

    简介 Spark Spark是分布式计算框架 Spark可以和多种存储系统结合使用,如Kafka、HBase、Hi...

  • spark BlockManager

    我们从这个入口开始分析,task对rdd开始处理。 SparkEnv.get.cacheManager.getOr...

  • Spark BlockManager

    BlockManager为Spark 存储block主要类,和HDFS类似点: 三份数据存储时,本机,本RACK,...

  • Spark RPC通信

    Spark RPC通信,参考文章: 深入解析Spark中的RPC spark 分布式的基础-通信系统 rpc Sp...

  • 看过的好的博客

    Spark BlockManager原理与源码分析yarn的框架及原理Spark数据倾斜的完美解决SparkSQL...

网友评论

    本文标题:Spark的分布式存储系统BlockManager全解析

    本文链接:https://www.haomeiwen.com/subject/gjvrnktx.html