spark-submit任务提交核心机制
2020-04-01 18:47:19 0 举报
spark-submit提交任务时,管理数据策略
作者其他创作
大纲/内容
BlockMangerWorker
BlockManger
每个节点上都有BlockManager,有几个关键组件DiskStore,负责对磁盘上的数据进行读写。MemoryStore,负责对内存上的数据进行读写。ConnectionManager,负责建立BlockManager到远程其他节点的BlockManager的网络连接。BlockManagerWorker,负责对远程其他节点的BlockManager的数据读写。
ConnectionManager
Driver
MemoryStore
BlockManagerInfo
driver有blockManagerMaster,负责对各个节点上的blockManager内部管理数据的元数据进行维护,比如block增删改等操作,都会在这里维护元数据变量。
DiskStore
比如说shuffle Read,很有可能拉数据的时候,在本地没有,那么就会到远程有数据的节点上,找到那个节点的BlockManager来拉取需要的数据。从BlockManager读取数据时,比如说shuffle Read的操作,如果能从本地读数据,那么就从DiskStore或MomoryStore从本地来读取数据,但是如果本地没有数据的话,就会用ConnectionManager与有数据的BlockManager建立连接,然后用BlockManagerWorkrer从远程的BlockManager读取数据
每个BlockManager在启动之后,做的第一件事,就是向BlockMangerMaster进行注册,此时BlockManagerMaster会为其创建对应的BlockManagerInfo
DAGScheduler
此外如果Persist指定的缓存级别是_2,带复制的这种,那么会使用BlockManagerWorker将数据Replicate一份到其他节点的BlockManager
只要使用BlockManager执行了数据的增删改操作,那么必须将Block的BlockStatus上报到BlockManagerMaster上去,在BlockManagerMaster上,会对指定的BlockManager的BlockManagerInfo内部的BlockStatus进行增删改操作,从而达到维护元数据的功能
replicate
BlockManagerMaster
BlockStatus
收藏
0 条评论
下一页