一、简介
Spark Streaming是一种准实时的流式计算框架,它对数据处理的单位是一批而不是一条,在数累积到设置的时间间隔后,对数据进行统一的微批处理。这个时间间隔是Spark Streaming的核心概念和关键参数,直接决定了Spark Streaming作业的数据处理延迟,当然也决定了吞吐量和性能。实时数据的来源可以是:Kafka, Flume, Twitter, ZeroMQ或者TCP sockets,并且可以使用高级功能的复杂算子来处理流数据。例如:map,reduce,join,window 。最终,处理后的数据可以存放在文件系统,数据库等,方便实时展现。
二、底层原理
Spark Streaming中基本的抽象是离散流(DStream),DStream代表的是一个连续的数据流,它的底层实际上是由一系列连续的RDD组成的。每个RDD包含确定时间间隔内的数据,这些离散的RDD连在一起,组成了对应的DStream。所以对DStream的操作,实际上都转化成了对一系列的RDD操作。想要学好Spark Streaming,不妨先把Spark最底层的RDD弄明白。
三、执行流程
1、我们在集群中的其中一台机器上提交我们的Application Jar,然后就会产生一个Application,开启一个Driver,然