062 SparkStream内部原理

本文深入探讨了DStream和RDD的概念,解释了DStream如何由一系列的RDD组成,每个RDD包含特定时间段内的所有block数据。文章还详细介绍了DStream的方法,如slideDuration用于设置生成RDD的时间间隔,dependencies表示DStream的依赖关系,以及compute方法用于生成特定时间的RDD对象。此外,文中还讨论了RDD的产生、存储和销毁机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.DStream

  内部是一系列的RDD组成的,每个RDD与RDD的产生时间形成一个pair保存在内存中(下面有)

  RDD包含了对应时间段的所有block数据。

 

2.DStream下的方法 

/** Time interval after which the DStream generates a RDD */
def slideDuration: Duration
=》间隔时间

/** List of parent DStreams on which this DStream depends on */
def dependencies: List[DStream[_]]
=》DStream的依赖

/** Method that generates a RDD for the given time */
def compute(validTime: Time): Option[RDD[T]]
=》获取对应时间对应的RDD对象

 

3.RDD的产生,存储

// RDDs generated, marked as private[streaming] so that testsuites can access it
@transient
private[streaming] var generatedRDDs = new HashMap[Time, RDD[T]] ()

 

4.RDD的销毁

// Duration for which the DStream will remember each RDD created
private[streaming] var rememberDuration: Duration = null
=》RDD的存留时间,对于不会再执行的RDD
当RDD已经执行过一次,而且创建时间超过rememberDuration的时候,RDD从map中删除。
默认情况下,值是slideDuration的两倍。

 

 

 

 

 

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值