首页 > 代码库 > Spark Streaming

Spark Streaming

Spark Streaming

Spark Streaming类似于Apache Storm,用于流式数据的处理。根据其官方文档介绍,Spark Streaming有高吞吐量和容错能力强等特点。Spark Streaming支持的数据输入源很多,例如:Kafka、Flume、Twitter、ZeroMQ和简单的TCP套接字等等。数据输入后可以用Spark的高度抽象原语如:map、reduce、join、window等进行运算。而结果也能保存在很多地方,如HDFS,数据库等。另外Spark Streaming也能和MLlib(机器学习)以及Graphx完美融合。

技术分享

DStream

Discretized(离散) Stream是Spark Streaming的基础抽象,代表持续性的数据流和经过各种Spark原语操作后的结果数据流。在内部实现上,DStream是一系列连续的RDD来表示。每个RDD含有一段时间间隔内的数据,如下图:

技术分享

对数据的操作也是按照RDD为单位来进行的

技术分享

计算过程由Spark engine来完成

技术分享

DStream上的操作分为Transformations(转换)和Output Operations(输出),类似RDD的Transformations和Action,Transformations是延迟执行的,只有触发Output Operations任务才会提交。

Spark Streaming