1.Spark Streaming 概述
1.1 Spark Streaming 是什么
Spark Streaming 用于流式数据的处理。Spark Streaming 支持的数据输入源很多,例如:Kafka、
Flume、Twitter、ZeroMQ 和简单的 TCP 套接字等等。数据输入后可以用 Spark 的高度抽象原语
如:map、reduce、join、window 等进行运算。而结果也能保存在很多地方,如 HDFS,数据库等。
另外 Spark Streaming 也能和 MLlib(机器学习)以及 Graphx 完美融合。
和 Spark 基于 RDD 的概念很相似,Spark Streaming 使用离散化流(discretized stream)作为抽
象表示,叫作 DStream。DStream 是随时间推移而收到的数据的序列。在内部,每个时间区间收
到的数据都作为 RDD 存在,而 DStream 是由这些 RDD 所组成的序列(因此得名“离散化”)。
DStream 可以从各种输入源创建,比如 Flume、Kafka 或者 HDFS。创建出来的 DStream 支
持两种操作,一种是转化操作(transformation),会生成一个新的 DStream,另一种是输出操作(output
operation),可以把数据写入外部系统中。DStream 提供了许多与 RDD 所支持的操作相类似的操
作支持,还增加了与时间相关的新操作,比如滑动窗口。
1.2 Spark Streaming 特点
1.易用
2.容错
3.易整合到 Spark 体系
1.3 Spark Streaming关键抽象
DStream :Discretized Stream 离散化流
1.4 SparkStreaming 架构