文章目录
DStream
DStream是一个抽象类,主要功能是为每一个批次的数据生成RDD实例,在DStream抽象类中定义了一个HashMap类型变量,存储持续产生的流数据
spark streaming 在持续流入的数据读取时,按时间划分不同批次数据,生成多个RDD,这些RDD保存在 generateRDDs中的HashMap中.键为Time类型
DStreamGraph
不同DStream 之间依赖关系通过DStreamGraph实例化管理
private[streaming] val graph: DStreamGraph = {
if (isCheckpointPresent) {
_cp.graph.setContext(this)
_cp.graph.restoreCheckpointData()
_cp.graph } else {
require(_batchDur != null, "Batch duration for StreamingContext cannot be null")
val newGraph = new DStreamGraph()
newGraph.setBatchDuration(_batchDur)
newGraph }
}通过源码,可以看出优先从checkPoint恢复数据
private val inputStreams = new ArrayBuffer[InputDStream[_]]() private val outputStreams = new ArrayBuffer[DStream[_]]()
InputDStream 是一个抽象类,记录数据源
abstract class InputDStream[T: ClassTag](_ssc: StreamingContext)
outputStreams 记录DStream输出操作
















