SparkStreaming
前言
本文介绍了有关SparkStreaming的相关知识,包括SparkStreaming架构、SparkStreaming实现WordCount案例、窗口函数等。
Spark 知识系列文章
此处罗列了有关Spark相关知识的其他文章,有需要的可以进行点击查阅。
一、Spark Streaming
Spark Streaming用于流式数据的处理。Spark Streaming使用离散化流(discretized stream)作为抽象表示,叫作DStream。DStream 是随时间推移而收到的数据的序列。在内部,每个时间区间收到的数据都作为 RDD 存在,而DStream是由这些RDD所组成的序列(因此得名“离散化”)。
1.1 Spark Streaming 架构
1.2 DStream 入门案例(Wordcount)
将接收器和driver绑定到一起,接收器不停止driver就不停止;
1.3 Dstream转换
无状态转化操作就是把简单的RDD转化操作应用到每个批次上,也就是转化DStream中的每一个RDD。也就是说无状态转化(红框reduceByKey)只会统计设定的时间周期内部的数据,对于历史数据不会统计;有状态转化(蓝框)则可以记录历史数据(updateStateByKey),统计过往的所有数据信息。
updateStateByKey操作使得我们可以在用新信息进行更新时保持任意的状态。为使用这个功能,你需要做下面两步:
1. 定义状态,状态可以是一个任意的数据类型。
2. 定义状态更新函数,用此函数阐明如何使用之前的状态和来自输入流的新值对状态进行更新。
使用updateStateByKey需要对检查点目录进行配置(黑框),会使用检查点来保存状态。
二、窗口函数
注意:设置窗口的大小时,应该是采集周期的整数倍并且滑动步长也应该是采集周期的整数倍;
总结
本文介绍了有关SparkStreaming的相关知识,包括SparkStreaming架构、SparkStreaming实现WordCount案例、窗口函数等。如果有不足之处或者表述不当的地方欢迎大家指正。