AmosCloud

Library

Have a Question?

If you have any question you can ask below or enter what you are looking for!

SparkStreaming

SparkStreaming

是什么

SparkStreaming是Spark中的一个模块,用于构建可扩展高容错的流式计算应用程序
支持使用与SparkCore、SparkSQL相同的API构建流式应用

  1. 简单易用
    SparkStreaming底层也使用RDD作为数据抽象,提供了新的数据抽象DStream
    可以在Spark程序中将DStream转换为RDD、DF、DS,
    几乎可以与构建批处理程序使用相同的开发方式来构建流式计算程序

  2. 统一API
    RDD的高级算子
    DF、DS的SQLapi
    DStream中也提供了部分新的算子(window、state)

  3. 容错
    与其他的流式计算框架类似,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

file

  • SparkStreaming

file

  • Flink

file