第2课:SparkStreaming透彻理解三板斧之二:解密SparkStreaming运行机制和架构

本期内容:

10多年的船山网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。全网整合营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整船山建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“船山网站设计”,“船山网站推广”以来,每个客户项目都认真落实执行。

  • 解密Spark Streaming 运行机制

  • 解密Spark Streaming 框架

Spark Streaming是Spark的一个子框架,但是它更像是运行在Spark Core上的一个应用程序。Spark Streaming在启动时运行了很多的job,并且job之间相互配合。

Job围绕了两个方面:

1. 对输入数据流进行计算的Job

2. 框架自身运行需要的Job,例如Receiver启动。

Spark Streaming本身就是一个非常复杂的应用程序,如果你对SparkStreaming了如指掌,那么你将非常轻松的编写任意的应用程序。

我们看一下Spark的架构图:

第2课:SparkStreaming 透彻理解三板斧之二:解密SparkStreaming运行机制和架构

Spark core上面有4个流行的框架:SparkSQL、流计算、机器学习、图计算

除了流计算,其他的框架大多都是在SparkCore上对一些算法或者接口进行了高层的封装。例如SparkSQL 封装了SQL语法,主要功能就是将SQL语法解析成SparkCore的底层API。而机器学习则是封装了很多的数学向量及算法。GraphX目前也没有太大的更新。

只有对SparkStreaming彻底了解,才能对提升我们写应用程序有很大的帮助。

基于Spark Core的时候,都是基于RDD编程,而基于SparkStreaming则是基于DStream编程。DStream就是在RDD的基础上,加上了时间维度:

private[streaming] var generatedRDDs = new HashMap[Time, RDD[T]] ()

DStream的compute需要传入一个时间参数,通过时间获取相应的RDD,然后再对RDD进行计算

/** Method that generates a RDD for the given time */
def compute(validTime: Time): Option[RDD[T]]

我们查看SparkStreaming的运行日志,就可以看出和RDD的运行几乎是一致的:

第2课:SparkStreaming 透彻理解三板斧之二:解密SparkStreaming运行机制和架构

SparkStreaming Job在运行的时候,首先会生成DStream的Graph,在特定的时间将DStream Graph转换成RDD Graph。然后再去运行RDD的job 。如下图:

第2课:SparkStreaming 透彻理解三板斧之二:解密SparkStreaming运行机制和架构

如果我们把RDD看成一个空间上的维度,那么DStream就是在RDD上加入了时间维度的时空维度。

第2课:SparkStreaming 透彻理解三板斧之二:解密SparkStreaming运行机制和架构

我们可以想象一下,在一个二维空间中,X轴是时间,Y轴是对RDD的操作,也就是所谓的RDD的依赖关系构成的整个job的逻辑。随着时间的进行,会生成一个个的job实例。

第2课:SparkStreaming 透彻理解三板斧之二:解密SparkStreaming运行机制和架构所以SparkStreaming需要提供如下的功能:

  • 需要RDD Graph生成的模板DStreamGraph

  • 需要基于时间的job控制器

  • 需要InputStream和OutputStream代表数据的输入和输出

  • 将具体的job提交到Spark Cluster上,因为SparkStreaming是不断的在运行job,更容易出现问题,所以容错就至关重要(单个job的容错是基于Sparkcore的,SparkStreaming还要提供自己框架的容错功能)。

  • 事务处理,数据一定会被处理,并且只会被处理一次。也就是说每次处理数据的时候,要知道数据的边界。特别是出现崩溃的情况下。

备注:

1、DT大数据梦工厂微信公众号DT_Spark 
2、IMF晚8点大数据实战YY直播频道号:68917580
3、新浪微博: http://www.weibo.com/ilovepains


标题名称:第2课:SparkStreaming透彻理解三板斧之二:解密SparkStreaming运行机制和架构
网站地址:http://myzitong.com/article/geeccp.html