您的位置:首页 > 其它

Spark内核源码深度剖析(10) -BlockManger 原理分析

2019-01-10 10:38 621 查看
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012292754/article/details/86175716

1 BlockManager 原理分析

  • Driver
    上,有
    BlockManagerMaster
    ,他的功能就是负责对各个节点上的
    BlockManager
    内部管理的数据的元数据进行维护,比如 block 增删改查等操作,都会在这里维护元数据的变更。
  • 每个节点都有
    BlockManager
    , 它的几个关键组件,
    DiskStore
    ,负责对磁盘上的额数据进行读写;
    MemoryStore
    ,负责对内存中的数据进行读写;
    ConnectionManager
    ,负责建立
    BlockManager
    到远程其他节点的
    BlockManager
    的网络连接;
    BlockManagerWorker
    ,负责对远程其他节点的
    BlockManager
    的数据读写;
  • 使用
    BlockManager
    进行读写操作时,比如,RDD运行过程中的一些中间数据,或者用户手动指定了
    persist()
    ,优先将数据写入内存。如果内存大小不够,会使用自己的算法,将内存中的部分数据写入磁盘。
  • 如果
    persist()
    指定了要
    replica
    ,会使用
    BlockManagerWorker
    将数据 replicate 一份到其他节点的
    BlockManager
    ;
  • BlockManager
    读取数据时,比如说
    ShuffleRead
    操作。如果能从本地读取数据,那么会用
    ConnectionManager
    与 有数据的
    BlockManager
    建立连接,然后用
    BlockManagerWorker
    从远程
    BlockManager
    读取数据
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: