第5章 Spark Streaming
Spark Streaming给Apache Spark加入了实时分析这一大数据处理利器。它不仅能摄取实时数据流,还可以提供秒级的低延迟实时智能分析。
本章将会介绍以下内容。
- 基于流处理的字数统计。
- Twitter数据的流处理。
- 基于Kafka的流处理。
5.1 简介
流(Streaming)是把连续输入的数据划分成离散的单元的过程,以便更容易处理数据。现实生活中熟悉的例子有流媒体视频和音频内容(尽管用户可能把整个电影下载下来再看,更快的方法是把数据流处理成小块,这样可以一边播放一边在后台下载剩下的数据)。
现实中关于流的例子除了多媒体,还有对市场反馈、天气数据、电子股票的交易数据等的处理。所有的这些应用都以很快的速度产生大量的数据,同时需要特殊处理这些数据,这样才能实时地洞察这些数据。
在关注Spark Streaming之前,我们最好要知道几个流的基本概念。流处理程序接收数据的速度叫作数据速率(data rate),表示为千字节每秒(kbit/s)或者兆字节每秒(Mbit/s)。
流处理的一个重要的应用场景就是复杂事件处理(Complex Event Processing,CEP)。在CEP中,控制数据处理的范围很重要,这个范围叫窗口(window),窗口可以基于时间或者大小。一个基于时间窗口的例子有分析最近一分钟的到达数据。一个基于大小的窗口的例子有计算一支股票最近的100笔交易的要价平均值。
Spark Streaming是Spark提供数据流处理的库。流可以是来自任何数据源,比如Twitter、Kafka,或者Flume。
在深入本教程前,我们需要认真理解Spark Streaming的一些基础组件。
Spark Streaming有一个关于上下文的封装类叫StreamingContext,封装了SparkContext,也是Spark ...
Get Spark Cookbook (中文版) now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.