Bootstrap

【秒懂StructuredStreaming】StructuredStreaming是何方神圣

目录

一、为何要有StructuredStreaming

二、StructuredStreaming的特性

1、结构化流式处理

2、基于Event-Time聚合&延迟数据处理

3、容错性


Structured Streaming是Spark新提出的一种实时流的框架,以前是Spark Streaming。那么这两者有什么区别呢,为什么有了Spark Streaming,还要提出Structured Streaming呢?且听我娓娓道来~

一、为何要有StructuredStreaming

    Spark Streaming 是Spark核心API的一个扩展,可以实现高吞吐量的、具备容错机制的实时流数据的处理。

    支持从多种数据源获取数据,包括Kafk、Flume、以及TCP socket等,从数据源获取数据之后,可以使用诸如map、reduce和window等高级函数进行复杂算法的处理。最后还可以将处理结果存储到文件系统和数据库等

    Spark Streaming处理的数据流图:

    

    Spark Streaming的处理机制如下图:

    

    Spark Streaming接收流数据,并根据一定的时间间隔拆分成一批批batch数据,用抽象接口DStream表示(DStream可以看成是一组RDD序列,每个batch对应一个RDD),然后通过Spark Engine处理这些batch数据,最终得到处理后的一批批结果数据。

    Structured Streaming是Spark2.0版本提出的新的实时流框架(2.0和2.1是实验版本,从Spark2.2开始为稳定版本),相比于Spark Streaming,优点如下:

  • 同样能支持多种数据源的输入和输出,参考如上的数据流图
  • 以结构化的方式操作流式数据,能够像使用Spark
;