ReceiverTracker怎么实现

发布时间:2021-12-16 15:27:47 作者:iii
来源:亿速云 阅读:138

本篇内容主要讲解“ReceiverTracker怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ReceiverTracker怎么实现”吧!

ReceiverTacker类如下,从源码注释可以看出该类的作用。

    管理ReceiverInputDStreams的执行,记录Receiver发来的元数据信息。ReceiverTacker类构造时必须传入StreamingContext对象。

ReceiverTracker怎么实现

    ReceiverTacker类内部有ReceiverTackerEndpoint这个消息通信体,用于和运行在Executor端的ReceiverSupervisorImpl进行通信,包括Receiver的注册,重启Receiver,清除之前的Block数据,更新限流值,添加Block元数据信息等消息。

ReceiverTracker怎么实现

    接下来以接收到来自Executor端的ReceiverSupervisorImpl发来添加元数据信息的AddBlock消息,进行讲解具体的处理流程。

ReceiverTracker怎么实现

ReceiverTracker怎么实现        

ReceivedBlockInfo类包含了StreamID,Block中记录条数,元数据Metadata,接收Block的存储结果(BlockID和记录数量)

ReceiverTracker怎么实现

ReceiverBlockTracker类是addBlock方法的具体实现。

ReceiverTracker怎么实现

        1.调用ReceiverBlockTracker的writeToLog方法

ReceiverTracker怎么实现

        2.调用ReceiverBlockTracker的getReceivedBlockQueue方法,其中streamIdToUnallocatedBlockQueues为HashMap,Key为StreamID,Value为ReceivedBlockQueue。而ReceivedBlockQueue 的定义为private type ReceivedBlockQueue = mutable.Queue[ReceivedBlockInfo]

ReceiverTracker怎么实现

        ReceiverBlockTracker类,可以从源码中看出,他会记录所有接收到的Block信息,根据需要把Block分配给Batch。如果设置了checkpoint,开启WAL,则会把所有的操作保存到预写日志中,因此当Driver失败后就可以从checkpoint和WAL中恢复ReceiverTracker的状态。

ReceiverTracker怎么实现

        ReceiverBlockTracker类中重要的方法,allocateBlocksToBatch。private val timeToAllocatedBlocks = new mutable.HashMap[Time, AllocatedBlocks]存储批处理时刻,分配到的Blocks数据。

ReceiverTracker怎么实现

        该方法是被ReceiverTracker调用的。

ReceiverTracker怎么实现

        而ReceiverTracker的allocateBlocksToBatch方法是被JobGenerator的generateJobs方法调用的。

ReceiverTracker怎么实现        

ReceiverBlockTracker类中重要的方法,getBlocksOfBatch。

ReceiverTracker怎么实现       

 该方法是被ReceiverTracker的getBlocksOfBatch调用。

ReceiverTracker怎么实现       

ReceiverTracker的getBlocksOfBatch方法是被ReceiverInputDStream的compute方法调用的。

ReceiverTracker怎么实现

到此,相信大家对“ReceiverTracker怎么实现”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

推荐阅读:
  1. 第11课:Spark Streaming源码解读之Driver中的ReceiverTracker架构设计以及具体实现彻底研究
  2. BitMap实现

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

receivertracker

上一篇:Spark Streaming怎么使用

下一篇:Linux sftp命令的用法是怎样的

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》