DStream 以及基本工作原理

Spark Streaming 基本工作原理

Spark Streaming 内部的基本工作原理如下:接收实时输入数据流,然后将数据拆分成多个 batch,比如每收集 1 秒的数据封装为一个 batch,然后将每个 batch 交给 Spark 的计算引擎进行处理,最后会生产出一个结果数据流,其中的数据,也是由一个一个的 batch 所组成的。
DStream 以及基本工作原理_第1张图片

DStream

Spark Streaming 提供了一种高级的抽象,叫做 DStream,英文全称为 Discretized Stream,中文翻译为“离散流”,它代表了一个持续不断的数据流。DStream 可以通过输入数据源来创建,比如 Kafka、Flume 和 Kinesis;也可以通过对其他 DStream 应用高阶函数来创建,比如 map、reduce、join、window。

DStream 的内部,其实一系列持续不断产生的 RDD。RDD 是 Spark Core 的核心抽象,即,不可变的,分布式的数据集。DStream 中的每个 RDD 都包含了一个时间段内的数据。
DStream 以及基本工作原理_第2张图片

对 DStream 应用的算子,比如 map,其实在底层会被翻译为对 DStream 中每个 RDD 的操作。比如对一个 DStream 执行一个 map 操作,会产生一个新的 DStream。但是,在底层,其实其原理为,对输入 DStream 中每个时间段的 RDD,都应用一遍 map 操作,然后生成的新的 RDD,即作为新的 DStream 中的那个时间段的一个 RDD。底层的 RDD 的 transformation 操作,其实,还是由 Spark Core 的计算引擎来实现的。Spark Streaming 对 Spark Core 进行了一层封装,隐藏了细节,然后对开发人员提供了方便易用的高层次的 API。
DStream 以及基本工作原理_第3张图片

关键词:大数据培训

你可能感兴趣的:(大数据)