0
点赞
收藏
分享

微信扫一扫

SparkShuffle的文件寻址

爱上流星雨 2022-02-18 阅读 51



文章目录


  • ​​Shuffle 文件寻址 进程​​

  • ​​1) MapOutputTracker​​
  • ​​2) BlockManager​​

  • ​​文件寻址图​​
  • ​​Shuffle 文件寻址流程​​


Shuffle 文件寻址 进程

1) MapOutputTracker

MapOutputTracker是Spark架构中的一个模块,是一个主从架构。管理磁盘小文件的地址

MapOutputTrackerMaster 是主对象,存在于 ​Driver​ 中。

MapOutputTrackerWorker 是从对象,存在于 ​Excutor​ 中。

2) BlockManager

BlockManager 块管理者,是 Spark 架构中的一个模块,也是一个 主从架构。

BlockManagerMaster,主对象,存在于 Driver 中。 BlockManagerMaster 会在集群中有用到广播变量和缓存数据,或者删除缓存数据的时候,通知 BlockManagerSlave 传输或者 删除数据。

BlockManagerWorker 从对象,存在于 Excutor 中。

BlockManagerWorker 会与 BlockManagerWorker 之间通信,无论在 Driver 端的 BlockManager 还是在 Excutor 端的 BlockManager 都含有四个对象:


① DiskStore:负责磁盘的管理

② MemoryStore:负责内存的管理

③ ConnectionManager:负责连接其他的


BlockManagerWorker


④ BlockTransferService:负责数据的传输


文件寻址图

SparkShuffle的文件寻址_寻址

Shuffle 文件寻址流程


a) 当 map task 执行完成后,会将 task 的执行情况和磁盘小文件的 地址封装到 MpStatus 对象中,通过MapOutputTrackerWorker 对象向 Driver 中的MapOutputTrackerMaster 汇报

b) 在所有的 map task 执行完毕后,Driver 中就掌握了所有的磁盘 小文件的地址。

c) 在 reduce task 执行之前,会通过 Excutor 中MapOutPutTrackerWorker 向 Driver 端的 MapOutputTrackerMaster 获取磁盘小文件的地址。
d) 获取到磁盘小文件的地址后,会通过 BlockManager 中的 ConnectionManager 连接数据所在节点上的 ConnectionManager,然后通过 BlockTransferService 进行数据的传输。

e) BlockTransferService 默认启动 5 个 task 去节点拉取数据。默认情况下,5 个 task 拉取数据量不能超过 48M。




举报

相关推荐

0 条评论