2. 通过案例对透彻理解三板斧之二:解密SparkStreaming运行机制和架构进阶之运行机制和架构

2. 通过案例对透彻理解三板斧之二:解密SparkStreaming运行机制和架构进阶之运行机制和架构_第1张图片

Spark core上面有4个流行的框架:SparkSQL、流计算、机器学习、图计算。从框架入手可以更清晰地了解Spark Core的内容。

Spark Streaming工作原理:

Spark Sreaming接收实时输入数据流并将它们按批次划分,然后交给Spark引擎处理生成按照批次划分的结果流。

2. 通过案例对透彻理解三板斧之二:解密SparkStreaming运行机制和架构进阶之运行机制和架构_第2张图片

DStream Graph是RDD DAG 的模板,DStream是逻辑级别的,而RDD是物理级别的。DStream是随着时间的流动内部将集合封装RDD。

DStream就是对RDD操作封装的集合,对DStream操作的transform的操作就会作用于内部封装的集合的每一个RDD,所以对RDD的操作就产生了RDD之间的依赖关系就构成了DAG的依赖关系。

为什么会对RDD进行操作?这个是对DStream操作的业务逻辑,也就是空间维度决定的,这空间维度作用于DStream这样一个集合,随着时间的流逝每个Batch Interval形成了具体的数据集产生了RDD,

对RDD进行transform操作,进而形成了RDD的依赖关系RDD DAG,形成job。然后jobScheduler根据时间调度,基于RDD的依赖关系,把作业发布到Spark Cluster上去运行,不断的产生Spark作业。

2. 通过案例对透彻理解三板斧之二:解密SparkStreaming运行机制和架构进阶之运行机制和架构_第3张图片

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

Spark Steaming精妙之处在于Job的划分只依赖于时间,这最大程度的解耦合。

Spark Steaming具体的Job运行在Spark Cluster之上,系统容错至关重要。单个Job的容错机制和RDD的容错机制相同,此外还有自己框架的容错机制,如可以动态调整CPU、线程等资源。

事物处理的关键在于系统崩溃的情况下仍然能保持语意的一致性。

那DStream Graph是根据什么生成的呢?DStream(离散流)的依赖关系。

2. 通过案例对透彻理解三板斧之二:解密SparkStreaming运行机制和架构进阶之运行机制和架构_第4张图片
DStream的具体实现子类

资料来源于:

DT_大数据梦工厂(Spark发行版本定制)微信公众号:DT_Spark

新浪微博:http://www.weibo.com/ilovepains

如果您对大数据Spark感兴趣,可以免费听由王家林老师每天晚上20:00开设的Spark永久免费公开课,地址YY房间号:68917580

2. 通过案例对透彻理解三板斧之二:解密SparkStreaming运行机制和架构进阶之运行机制和架构_第5张图片
微信公众号

你可能感兴趣的:(2. 通过案例对透彻理解三板斧之二:解密SparkStreaming运行机制和架构进阶之运行机制和架构)