第19课:Spark Streaming架构设计和运行机制大总结

原创
2016/06/10 12:16
阅读数 237

本期内容:

1,Spark Streaming中的架构设计和运行机制

2,Spark Streaming的深度思考

 

RDD的模板是DStream,RDD DAG的模板是DStreamGraph,Spark Streaming是在RDD的基础上加上时间维度,在Driver端会启动一个定时器,间隔BatchDuration生成Job,在Executor端会启动一个定时器,间隔200ms把接收到的数据放入BlockManager中,并把元数据信息上报给Driver端的ReceiverTracker,整个程序引擎是无时无刻在运行的。

JobGenerator类中有一个timer对象,其间隔BatchDuration发送GenerateJobs消息来生成Job。

      

    BlockGenerator类中有一个blockIntervalTimer对象,每隔200ms调用updateCurrentBuffer方法,把接收到的数据交给BlockManager进行存储,并向ReceiverTracker上报元数据信息。

 

    RecurringTimer类中的loop方法是一个死循环,一直执行,间隔一定的周期回调传入的方法。

    此外,默认的并行度具有遗传性,父RDD的partition个数会遗传给子RDD,当RDD中每个partition中数据较少时,为了提高效率,可以先调用coalesce方法合并到指定的partition个数。Spark Streaming中存在空RDD,即RDD里面没有数据,此时也会生成Job,Job的生成是定时触发的,不关心RDD中是否有数据,这是为了使整个框架能正常运行。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
2 收藏
0
分享
返回顶部
顶部