DStream 是一个离散的Stream,是在Spark Streaming中的一个基本的抽象,是一个连续的相同类型RDD的序列。通常是一个连续的数据流。DStream 可以使用StreamingContext通过实时的数据流创建(比如,Tcp Sockets,Kafka,Flume等),也可以使用一些 map、window和reduceByKeyAndWindow产生。当SparkStreaming在运行的时候,每个Dstream 周期性的产生RDD,要么从实时的数据源中要么从父Dstream中。
这个类包含了对所有Datreams基本的操作,比如 map,filter 和window。另外 包含一些只能作用于key-value键值对的操作,比如 groupByKeyAdnWindow,join 等。
DStream 内部有 一下几个主要的属性。这也是Dstream主要的特征:
- DStream 所依赖的其他DStream的列表。
- DStream 产生一个RDD的时间间隔
- 每隔固定时间用来产生一个新的RDD的方法
/** 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[_]]
/** Method that generates a RDD for the given time */
def compute(validTime: Time): Option[RDD[T]]
image.png
DirectKafkaInputDStream 可以参考我的另一篇笔记
https://www.jianshu.com/p/a23e0052ad52
网友评论