spark reduce task是怎么拉取数据的

转载:https://www.jianshu.com/p/cfa7dc8ce14e

reduce task 拉取数据

1.map task 执行完毕后会将计算状态以及磁盘小文件位置等信息分装到mapStatue对象中,然后由本进程中的MapOutPutTrackerWorker对象将mapStatus对象发送给Driver进程的MapOutPutTrackerMaster对象

2.在reduce task开始执行之前会先让本进程中的MapOutputTrackerWorker向Driver进程中的MapoutPutTrakcerMaster发动请求,请求磁盘小文件位置信息。

3.当所有的Map task执行完毕后,Driver进程中的MapOutPutTrackerMaster就掌握了所有的磁盘小文件的位置信息。此时MapOutPutTrackerMaster会告诉MapOutPutTrackerWorker磁盘小文件的位置信息.

4.完成之前的操作之后,就由ConnectionManager来链接node1和node2之间的信息。由BlockTransforService去Executor0所在的节点拉数据,默认会启动五个子线程。每次拉取的数据量不能超过48M(reduce task每次最多拉取48M数据,将拉来的数据存储到Executor内存的20%内存中).


注意
1.拉取数据的过程也是一个Master-Slave架构
Master:Driver进程中BlockManagerMaster:管理全局磁盘小文件个数
Driver:Executor进程中Block'Manager'Slave:管理局部磁盘小文件个数
2.BlockManager中几个常用的类
DiskStore:负责磁盘上数据的读写
MemStore:负责内存上数据的读写
ConntectManager:负责建立连接
BlockTransfoeService:负责数据的传输

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值