美文网首页
spark中,reduce是如何获取map任务的输出?

spark中,reduce是如何获取map任务的输出?

作者: scott_alpha | 来源:发表于2019-10-11 21:11 被阅读0次

首先有mapoutputtrackerMaster,mapoutputTracker用于追踪map阶段任务的输出状态,此状态便于reduce阶段任务获取,地址及中间输出结果,其内部使用mapstatuses:HashMap<key,Array[mapstatus]>,其中key是shuffleid,array维护每个map的状态信息mapstatus,mapstatus维护了map输出block的地址。所以reduce知道如何从map任务中获取数据。
Driver和Executor处理MapOutputTrackerMaster的方式有所不同。如果当前应用程序是Driver,则创建MapOutputTrackerMaster,然后创建MapOutputTrackerMasterActor,并且注册到ActorSystem中。如果当前应用程序是Executor,则创建MapOutputTrackerWorker,并从ActorSystem中找到MapOutputTrackerMasterActor。
无论是Driver还是Executor,最后都由mapOutputTracker的属性trackerActor持有MapOutputTrackerMasterActor的引用。map任务的状态正是由Executor向持有的MapOutputTrackerMasterActor发送消息,将map任务状态同步到mapOutputTracker的mapStatuses。

相关文章

网友评论

      本文标题:spark中,reduce是如何获取map任务的输出?

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