解密SparkStreaming运行机制和架构

本文主要从五个方面来整体考虑SparkStreaming的机制和架构,如下图:

Spark Streaming运行机制和架构解析

图中A是action,RDD Graph中有三个Job
首先看到的是RDD的DAG,SparkStreaming在RDD的DAG的基础上加入了时间维度,而RDD的DAG依赖又叫空间维度,Dstream就是在RDD的基础上加上了时间维度,所以整个SparkStreaming就是时空维度。
空间维度:代表的RDD的依赖关系构成的具体的处理逻辑的步骤,是用Dstream来表示的;
时间维度:按照特定时间间隔不断地生成Job的实例并在集群上运行。

随着时间的流逝,产生了不同的RDD Graph依赖关系的实例,因为不同的RDD Graph的依赖关系处理的数据多少以及数据内容不一样,所以Dstream的Graph就是RDD Graph的模板,随着时间不断地把模板实例化,即在时间间隔内用数据去填充模板,变成RDD Graph。动态的Job控制器将流进来的数据根据时间间隔切分,并且按照Dstream模板复制或实例化出RDD DAG的具体实例.
另外,在源码中可以看到DstreamGraph是一个类,Dstream的依赖关系构成了DstreamGraph
DStream随着时间不断地产生RDD,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]] 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值