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
时间: 2024-10-09 03:47:27

Spark Streaming架构设计和运行机制总结的相关文章

Spark:RDD的设计与运行原理

# Spark:RDD的设计与运行原理 ## 1.RDD设计背景在实际应用中,存在许多迭代式算法和家忽视数据挖掘工具,这些应用场景的共同之处是,不同计算阶段之间会重用中间结果,即下一个阶段的输出结果会作为下一个阶段的输入.但是,目前的MapReduce框架都是把中间结果写入到HDFS中,带来了大量的数据复制.磁盘IO和序列化开销.虽然类似Pregel等图形计算框架也是将结果保存在内存中.但是,这些框架只能支持一些特定的计算模式,并没有提供一种通用的数据抽象.RDD就是为了满足这种需求出现的,它提

Qt之UI文件设计和运行机制

1.项目文件组成在QtCreator中新建一个WidgetApplocation项目,选中窗口基类中选中QWidget作为窗口基类,并选中"GnerateForm"复选框.创建后项目文件目录树如图: 项目组织文件pro:存储项目设置的文件主程序入口文件main.cpp,实现main函数的程序文件窗体界面文件widget.ui:一个XML格式存储的窗体上的文件以及其布局的文件widget.h是所设计的窗口类的头文件,widget.cpp是widget.h里定义类的实现文件.在C++里面,

分布式任务调度平台SIA-TASK的架构设计与运行流程

一.分布式任务调度的背景 无论是互联网应用或者企业级应用,都充斥着大量的批处理任务.我们常常需要一些任务调度系统来帮助解决问题.随着微服务化架构的逐步演进,单体架构逐渐演变为分布式.微服务架构.在此背景下,很多原先的任务调度平台已经不能满足业务系统的需求,于是出现了一些基于分布式的任务调度平台. 1.1 分布式任务调度的演进 在实际业务开发过程中,很多时候我们无可避免地需要使用一些定时任务来解决问题.通常我们会有多种解决方案:使用 Crontab 或 SpringCron (当然这种情况可能机器

宜信开源|分布式任务调度平台SIA-TASK的架构设计与运行流程

一.分布式任务调度的背景 无论是互联网应用或者企业级应用,都充斥着大量的批处理任务.我们常常需要一些任务调度系统来帮助解决问题.随着微服务化架构的逐步演进,单体架构逐渐演变为分布式.微服务架构.在此背景下,很多原先的任务调度平台已经不能满足业务系统的需求,于是出现了一些基于分布式的任务调度平台. 1.1 分布式任务调度的演进 在实际业务开发过程中,很多时候我们无可避免地需要使用一些定时任务来解决问题.通常我们会有多种解决方案:使用 Crontab 或 SpringCron (当然这种情况可能机器

Struts2架构分析和运行机制

实例分析 1.在浏览器中输入url地址后,会通过http协议发送给tomcat,tomacat收到请求后查看访问的是哪个 webapplication(如下图的Struts2_0100_Introduction),tomcat把Struts2_0100_Introduction交给对应的 webapplication程序去处理. 2.之后会参考Struts2_0100_Introduction下的对应的web.xml文件,将请求交给Struts2Filter去处理 ("/*"为这个项目

2.Spark Streaming运行机制和架构

1 解密Spark Streaming运行机制 上节课我们谈到了技术界的寻龙点穴.这就像过去的风水一样,每个领域都有自己的龙脉,Spark就是龙脉之所在,它的龙穴或者关键点就是SparkStreaming.这是上一节课我们非常清晰知道的结论之一.而且上一节课,我们采用了降维的方式.所谓降维的方式,是指把时间放大,就是把时间变长的情况下,我们做SparkStreaming的案例演示的实战,实战的结果是,我们发现在特定的时间段里面,确实是具体的RDD在工作,那么这一节课有必要在上一节课的基础上去谈一

Spark定制班第2课:通过案例对Spark Streaming透彻理解三板斧之二:解密Spark Streaming运行机制和架构

本期内容: 1 解密Spark Streaming运行机制 2 解密Spark Streaming架构 1 解密Spark Streaming运行机制 我们看看上节课仍没有停下来的Spark Streaming程序运行留下的信息. 这个程序仍然在不断地循环运行.即使没有接收到新数据,日志中也不断循环显示着JobScheduler.BlockManager.MapPartitionsRDD.ShuffledRDD等等信息.这些都是Spark Core相关的信息.其循环的依据,也就是时间这个维度.

通过案例对 spark streaming 透彻理解三板斧之二:spark streaming运行机制

本期内容: 1. Spark Streaming架构 2. Spark Streaming运行机制 Spark大数据分析框架的核心部件: spark Core.spark  Streaming流计算.GraphX图计算.MLlib机器学习.Spark SQL.Tachyon文件系统.SparkR计算引擎等主要部件. Spark Streaming 其实是构建在spark core之上的一个应用程序,要构建一个强大的Spark应用程序 ,spark  Streaming是一个值得借鉴的参考,spa

Spark版本定制:通过案例对SparkStreaming透彻理解三板斧之二:解密SparkStreaming运行机制和架构

本期内容: 1.解密Spark Streaming运行机制 2.解密Spark Streaming架构 上期回顾: 1.技术界的寻龙点穴,每个领域都有自己的龙脉,Spark就是大数据界的龙脉,Spark Streaming就是Spark的龙血: 2.采用了降维(把时间Batch Interval放大)的方式,进行案例演示实战,得到的结论是:特定的时间内是RDD在执行具体的Job: 一.解密Spark Streaming运行机制和架构 运行机制概念:       Spark Streaming运行