Spark Streaming架构设计和运行机制总结

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spark Streaming架构设计和运行机制总结相关的知识,希望对你有一定的参考价值。

本期内容 :

  • Spark Streaming中的架构设计和运行机制
  • Spark Streaming深度思考

  

   Spark Streaming的本质就是在RDD基础之上加上Time ,由Time不断的运行触发周而复始的接收数据及产生Job处理数据。

 

一、 ReceiverTracker :

  Receiver数据接收器的启动、接收数据过程中元数据管理,元数据管理是使用内部的RPC。

  根据时间的间隔把数据分配给当前的BatchDuration :

  技术分享

  通过Dstreams中的StreamID以及这个DStreamID给这个时间段(getReceivedQueue(SteamID))的Block为例 :

  技术分享

  不断的分配是依赖定时器,看数据生成的时候怎么产生数据及通过他的方式管理数据的 。

  技术分享

  不断接收数据并保存起来,在BlockTracker启动Receiver时首先会启动StartReceiver 。

  技术分享

  写数据时有不同的BlockHandler 。

  技术分享

  Receiver自己的RPC ,响应不同的消息。

  技术分享 

  定时器按照具体的时间间隔 :

  技术分享

  技术分享

  技术分享

 

二、 currentBuffer :

  把接收的数据保存在一个currentBuffer数据结构(属于临时数据结构)中,每次根据其时间间隔进行,每次都会New一下currentBuffer,默认是200MS。 

  技术分享

  技术分享

  技术分享

  

 三、 架构思考 :

    从Spark Streaming的角度讲静态生成Dstreams,Dstreams当遇到时间的时候才会生成RDD和DStreamGenerator。

   基于DStreamGenerator就构成了这个依赖关系。调度层面讲JobScheduler,是基于时间的流处理框架。

  技术分享

  根据BatchDuration的时钟不断循环,不断的发送消息 。

  技术分享   

  技术分享

  技术分享

   以时间为基准 不断的发送消息给event 。

  技术分享

  技术分享 

  技术分享

  生成作业 :

  技术分享

  

  Spark Streaming运行核心:

    Spark RDD加上Time,无论是从概念还是数据接收、数据处理,Time是驱动力,不断的循环事件、消息,时间的确定、数据、RDD接着就转到Spark Core。

 

    备注:

    • 资料来源于:王家林(Spark发行版本定制)
    • 新浪微博:http://www.weibo.com/ilovepains

 

以上是关于Spark Streaming架构设计和运行机制总结的主要内容,如果未能解决你的问题,请参考以下文章

11.Spark Streaming源码解读之Driver中的ReceiverTracker架构设计以及具体实现彻底研究

Spark Streaming源码解读之Driver中ReceiverTracker架构设计以具体实现彻底研究

低调对比Spark Streaming与Flink

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

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

Spark Streaming源码解读之流数据不断接收全生命周期彻底研究和思考