大纲
1.SparkStreaming 介绍
2.SparkStreaming 原理与架构
3.DStream 介绍
4.DStream 相关操作
5.DStream 操作实战
6.DStream 操作实战
7.DStreams 的转换
8.SparkStreaming 的容错
讲解
什么是 SparkStreaming
Spark Streaming 类似于Apache Storm ,用于流式数据的处理。根据其官方文档介绍, Spark Streaming 有高吞吐量和容错能力强的特点。 Spark Streaming 支持的数据源有很多。数据输入后可以用 Spark 的高度抽象操作如: 等进行运算。而结果也能保存再很多地方,如 HDFS ,数据库等,另外 Spark Streaming 也能和 MLlib (机器学习) 以及 Graphx 完美融合。
1.1.2 为什么要学习 SparkStreaming
易用
可以像编写离线批处理一样去编写流式程序,支持 java / scala / python 语言
容错
SparkStreaming 再没有额外代码和配置的情况下可以恢复丢失的工作
易整合到体系
流式处理与批处理和交互式查询相结合
1.1.3 SparkStreaming 与 Strom 的对比
SparkSreaming 原理与架构
2.1 SparkStreming 原理
SparkSreaming 是基于 spark 的流式批处理引擎,其基本原理是把输入数据以某一时间间隔批处理,当批处理间隔缩短至秒级时,便可以用于处理实时数据流.
2.2 SparkStreaming 计算流程
Spark Streaming 是将流式计算分解成一系列短小的批处理作业,这里的批处理引擎是 Spark Core, 也就是把 Spark Streaming 的输入数据按照 batch size (如1秒) 分成一段一段的数据 ( Discretized Stream ),每一段数据都转换成 Spark 中的RDD ,然后将 Spark Streaming 中对 DStream 的 Transformation 操作变为针对 Spark 中对 RDD 的 Transformation 操作,将 RDD经过操作变成中间结果保存