1.Spark Stream 简介
Spark Stream是spark core Api 的一种扩展,他可以用于大规模,高吞吐量,容错的实时数据流处理。它支持从多种数据源读取数据,比如kafka ,flume,ZeroMQ 等等并且能够使用类似高阶函数的复杂算法来进行数据处理,比如map reduce,join 等等。处理后的数据可以被保存到文件系统 , 数据库等等
2.spark Streaming 基本工作原理
Spark Streaming 内部的基本工作原理如下:接收实时输入数据流,然后将数据拆分成多个batch 比如每收集一秒的数据封装为一个batch ,然后将每个batch 交给spark 的计算我们引擎进行处理,最后会产生出一个结果数据流,其中的数据,也是由一个一个的batch 所有组成。
3.DStream(一)
Spark Streaming 提供了一种高级抽象,叫做DStream,英文全称为
Discretized Stream ,中文翻译为“离散流” 它代表了一个持续不断的数据流。DStream 可以通过输入数据源来创建,不如kafka flume kinesis;
也可以通过对其他DStream 应用高阶函数来创建,比如map ,reduce,join等等DStream的内部其实是一系列持续不断的RDD RDD 是spark core 的核心抽象,即不可变的分布式的数据集,DStream 中每个RDD 都包含了一段时间内的数据集合。
4.DStream(二)
对于Dstream 应用的算子,比如map 其实在底层会被翻译成对DStream这种每个RDD的操作,比如对于个DStream执行一个map操作,会产生一个新的DStream,但是在底层,其实其原理为对输入DStream中每个的RDD 都应用一遍map 操作,然后生成新的RDD 即作为新的DStream中那个时间段的一个RDD 底层的RDD 的transformation操作,其实还是由sparkcore 的计算引擎来实现的,spark streaming 对于spark core 机型了一层封装,隐藏可细节,然后对开发人员提供了方便易用的高层次api
下面给出一个整体的图解