Spark任务输出追踪器MapOutputTracker详解

MapOutputTracker是Spark中跟踪map任务输出状态的关键组件,它帮助reduce任务找到map输出的位置。在Driver和Executor端分别创建MapOutputTrackerMaster和MapOutputTrackerWorker,维护shuffle的mapStatuses,用于定位数据。获取mapStatus的流程包括从本地缓存或Driver端获取,处理并发获取时的锁机制,以及在ShuffleReader中使用mapStatus来拉取Block块数据。
摘要由CSDN通过智能技术生成
一.什么是shuffle

MapOutputTrancker用于跟踪map任务的输出状态,此状态便于reduce任务定位到map输出结果所在的节点地址,进而获取中间输出结果,每个map任务或者reduce任务,都会有其唯一的标识,分别为mapid和reduceid,每个reduce任务的输入可能是多个map任务的输出,因为reduce可能会到多个map任务所在的节点上去拉取Block,这一过程叫做shuffle,每次shuffle的过程都有其唯一的标识shuffleid.

二.MapOutputTrancker的创建方式

在Driver端和Executor端启动的同时,都会创建MapOutputTrancker的实例,不同的是Driver端创建的是MapOutputTranckerMaster,Executor端创建的是MapOutputTranckerWoker。

  • Driver端启动时会创建MapOutputTranckerMaster,之后创建MapOutputTranckerMasterEndpoint,并且注册到Dispatcher中,端点名称为MapOutputTrancker。

  • Executor端创建MapOutputTranckerWorker,不仅会和Driver端一样,注册端点信息等,而且会从远端Driver获取之前在NettyRpcEnv的Dispatcher中注册好的MapOutputTranckerMasterEndpoint的引用。

三.MapOutputTrancker的属性
  • trackerEndpoint:持有Driver端上MapOutputTranckerMasterEndpoint的
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值