SparkStreaming(一)——概述

SparkStreaming是什么?

Spark Streaming用于流式数据的处理。Spark Streaming支持的数据输入源很多,例如:Kafka、Flume、Twitter、ZeroMQ和简单的TCP套接字等等。数据输入后可以用Spark的高度抽象原语如:map、reduce、join、window等进行运算。而结果也能保存在很多地方,如HDFS,数据库等。

SparkStreaming(一)——概述

 

 它的这种输入->处理->输出模型可以类比RDD的计算模型;只不过,相比于RDD,它的数据源是实时的。

Spark Streaming使用离散化流(discretized stream)作为抽象表示,叫作DStream。DStream 是随时间推移而收到的数据的序列。在内部,每个时间区间收到的数据都作为 RDD 存在,而DStream是由这些RDD所组成的序列(因此得名“离散化”)。

 

SparkStreaming架构

 

 

SparkStreaming(一)——概述

架构图1

SparkStreaming(一)——概述

架构图2

 

 

1)数据流被接收器接收,封装成DStream,传递给driver;接收器是一个executor,是一个长期长期运行的线程。

2)driver把任务进行分解,分发给其他executor执行;底层还是利用SparkContext和RDD来实现的。

3)以批次为单位输出结果。

上一篇:使用SimpleHTTPServer的音频/视频流传输失败


下一篇:如何通过Javascript与Flash交互?