Spark Streaming 是spark提供的对实时数据进行流式计算的组件。比如生产环境中的网页服务器日志,或者网络服务中用户提交的状态更新组成的消息队列,都是数据流。Spark Streaming提供了用来操作数据流的API,并且与Spark Core中的RDD API高度对应。这样一来,程序员编写应用时的学习门槛得以降低,无论是操作内存或硬盘中的数据,还是操作实时数据流,程序员都更能应对自如。从底层设计来看,Spark Streaming支持与Spark Core同级别的容错性、吞吐量以及可伸缩性。

Spark Streaming的核心是一种可拓展、容错的数据流系统,它采用RDD批量模式(即批量处理数据)并加快处理速度。同时它又有点过于简单,基本上Spark Streaming可以以小批量或批次间隔(从500毫秒到更大的间隔窗口)运行。

Spark Streaming接受输入数据流,并在内部将数据流分成多个较小的batch(batch 大小取决于batch的间隔)。Spark引擎将这些输入数据的batch处理后,生成处理过数据的batch结果集。