怎么实现Spark的分布式存储系统BlockManager全解析


这篇文章将为大家详细讲解有关怎么实现Spark的分布式存储系统BlockManager全解析,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。BlockManager 是 spark 中至关重要的一个组件,在spark的运行过程中到处都有 BlockManager 的身影,只有搞清楚 BlockManager 的原理和机制,你才能更加深入的理解 spark。BlockManager的作用?我理解是负责做RDD的存储,如何存下来给后续任务去使用。
其内部模块图如下:图中看到有个memoryStore和DiskStore,说明把block做存储时,有内存和磁盘2种方式,存储后就都i通过这个Store去管理。存储时以Block为单位,所以会有个映射用的数组有一个负责和Driver的BlockManagerMaster通信的引用接口还有个shuffClient,负责做备份下载, 即各executor之间会通过shuffClient来做block的传输。其关系如图:从中可以看到blockManagerMaster在driver端生成executor中生成blockManager,并负责向BMM注册。spark中注册消息通过ActorSystem进行发送比如特殊的2个地方:试图put时,会先看下该blockId是否有缓存,有的话直接取过来,否则就重新创建blockInfo存储时会先判断内存是否充足,充足就写入memoryStore,如果不够会先释放再尝试放入。删除的操作没什么特别的,主要是会判断一下块的存储级别,选择从不同的store中取块。BMMAC就是BlockManagerMasterActor,我当初瞎写的简称注意点:当要取的块来自好几个BlockManager时, 把它 香港云主机打乱顺序,避免好几个BM同时从某一个BM上下载数据!BM为什么要备份他的block?书里作者没解释,我的理解是为了防止节点崩溃或者丢失,导致中间任务无法继续执行?因为其他的BlockManager能接收的block可能有限,所以备份时可能会涉及多个block, 每次我们一样,从BMmaster那里拿一个 ***随机***的blockManager做备份,避免都往同一个上备份。从中可以看到blockManagerMaster在driver端生成executor中生成blockManager,并负责向BMM注册。spark中注册消息通过ActorSystem进行发送关于怎么实现Spark的分布式存储系统BlockManager全解析就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

相关推荐: 关闭Ubuntu18图形界面的方法是什么

这篇文章将为大家详细讲解有关关闭Ubuntu18图形界面的方法是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。关闭图形界面开启图形界面其他版本的Ubuntu,命令不一定是gdm。dm代表 Display M…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 09/22 21:08
下一篇 09/22 21:09

相关推荐