美文网首页大数据
spark-submit提交任务机制,底层元数据管理

spark-submit提交任务机制,底层元数据管理

作者: 喵感数据 | 来源:发表于2020-04-01 22:35 被阅读0次

    driver有blockManagerMaster,负责对各个节点上的blockManager内部管理数据的元数据就行维护,比如block增删改等操作,都会在这里维护元数据变量。

    每个BlockManager在启动之后,做的第一件事,就是向BlockMangerMaster进行注册,此时BlockManagerMaster会为其创建对应的BlockManagerInfo。

    使用BlockManger时执行了写操作,比如RDD运行中的一些中间数据,或者我们手动指定的Cache或Persist。比如缓存级别设置的是(MEMORY_AND_DISK),那么会优先将数据写入到内存,如果内存大小不够,在使用硬盘。

    此外如果Persist指定的缓存级别是_2,带复制的这种,那么会使用BlockManagerWorker将数据Replicate一份到其他节点的BlockManager。

    只要使用BlockManager执行了数据的增删改操作,那么必须将Block的BlockStatus上报到BlockManagerMaster上去,在BlockManagerMaster上,会对指定的BlockManager的BlockManagerInfo内部的BlockStatus进行增删改操作,从而达到维护元数据的功能。

    每个节点上都有BlockManager,有几个关键组件DiskStore,负责对磁盘上的数据进行读写。

    MemoryStore,负责对内存上的数据进行读写。

    ConnectionManager,负责建立BlockManager到远程其他节点的BlockManager的网络连接。

    BlockManagerWorker,负责对远程其他节点的BlockManager的数据读写。

    从BlockManager读取数据时,比如说shuffle Read的操作,如果能从本地读数据,那么就和DiskStore或MomoryStore从本地来读取数据,但是如果本地没有数据的话,就会用ConnectionManager与有数据的BlockManager建立连接,然后用BlockManagerWorkrer从远程的BlockManager读取数据。

    相关文章

      网友评论

        本文标题:spark-submit提交任务机制,底层元数据管理

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