概述
建立在SparkCode之上的实时计算框架,它使构建可扩展的容错流应用程序变得简单。
SparkStreaming在Spark框架中的位置
SparkStreaming是Spark生态系统当中一个重要的框架,它建立在Spark Core之上(依赖Spark Core)
特点
- 使用简单
- 容错性好
- 和spark无缝集成
数据处理流程
- SparkStreaming是一个基于SparkCore之上的实时计算框架,可以从很多数据源消费数据并对数据进行实时处理
- 将处理后的数据存储到HDFS、数据库和实时仪表板,具有高吞吐量和容错能力强等特点
大数据工程师常见数据处理流程:Kafka—>SparkStreaming–>各种存储组件
核心计算思想
常见流式计算模式
模式一:原生流处理(Native)
概念:所有输入记录会一条接一条地被处理,上面提到的Storm和Flink都是采用这种方式。
但Flink还做了优化,通过设置缓冲块大小阈值/时间阈值毫秒级来触发数据块传输,可以平衡延迟和吞吐量,做到低延迟、高吞吐。
模式二:微批处理(Batch)
概念:将输入的数据以某一时间间隔T,切分成多个微批量数据,然后对每个批量数据进行处理,Spark Streaming和StructuredStreaming采用的是这种方式。
Spark Streaming 核心计算思想
Spark Streaming数据处理方式
它对流式数据的处理介于Batch批处理和RealTime实时处理之间,也就是微批处理
微批处理核心思想
- 将源源不断到来的数据,按照固定的时间间隔(BatchInterval)进行微批处划分MicroBatch
- 然后对每个MicroBatch微批数据进行快速分析和处理,当时间间隔(BatchInterval)较小时,一般为秒级,就像是在做"实时"处理!