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的两倍。