SparkStreaming
SparkStreaming
是什么
SparkStreaming是Spark中的一个模块,用于构建可扩展高容错的流式计算应用程序
支持使用与SparkCore、SparkSQL相同的API构建流式应用
-
简单易用
SparkStreaming底层也使用RDD作为数据抽象,提供了新的数据抽象DStream
可以在Spark程序中将DStream转换为RDD、DF、DS,
几乎可以与构建批处理程序使用相同的开发方式来构建流式计算程序 -
统一API
RDD的高级算子
DF、DS的SQLapi
DStream中也提供了部分新的算子(window、state) -
容错
与其他的流式计算框架类似,Spark也提供有状态的恰好一次的计算
Spark使用checkpoint实现流的状态传递
Spark使用RDD构建流式数据
对比 | 处理方式 | 实时性(处理延迟) | 吞吐量 |
---|---|---|---|
Storm | 流式计算 | 实时计算 | TB |
SparkStreaming | 微批处理 | 准实时计算 | PB |
Flink | 流式计算 | 实时计算 | PB |
对比 | 编程API | 集群 | 资源调度 |
---|---|---|---|
Storm | topology,spout,bolt,tuple | 主从架构,主节点nimbus,从节点superviser | storm standalone |
SparkStreaming | 程序入口StreamingContext,数据抽象DStream | 主从架构,主节点master,从节点worker | spark standalone,yarn,mesos,k8s |
Flink | 程序入口StreamEnviroment,数据抽象DataStream | 主从架构,主节点jobManager,从节点taskManager | fink standalone,yarn,mesos,k8s |
- Storm
- SparkStreaming
- Flink