大数据流处理框架对比

大数据流处理框架对比

  • 流处理框架 Flink SparkStreaming Storm KafkaStreams
    • 交付保障 数据一致性
    • 故障容错
    • 状态管理
    • 流处理的两种类型
      • Native流
      • 小批量/微批处理 micro batch
    • 延迟 vs 吞吐量
      • Storm jstorm
        • 优点
        • 缺点
      • Spark Streaming
        • 优点
        • 缺点
      • flink
        • 优点
      • Kafka Steams
        • 优点
        • 缺点
    • 选型考虑
    • 声明

流处理框架 Flink SparkStreaming Storm KafkaStreams

交付保障 数据一致性

Atleast-once( 至少会被处理一次 可能会重复)
Atmost-once( 最多会被处理一次 可能会丢数据)
Exactly-once( 只会被处理一次 不会重复也不会丢失

故障容错

分布式系统 任务故障、节点故障、网络故障等
状态持久化 恢复处理
kafka offset存储在zookeeper中

状态管理

性能
延迟 吞吐量 可伸缩性

高级功能(Event Time Processing, Watermarks, Windowing)

复杂事件处理 CEP

流处理的两种类型

Native流

每个传入的记录一到达就会被处理,而不必等待其他记录。

小批量/微批处理 micro batch

延迟 vs 吞吐量

Storm jstorm

优点

低延迟,真正的流处理
适合简单的流处理场景

缺点

不支持状态管理
没有事件时间处理,聚合,窗口,会话,水印等高级功能
至少保证一次

Spark Streaming

优点

支持Lambda架构
高吞吐量,适用于不需要低延迟的应用场景
微批次,默认容错
简单易用的高级API
社区活跃
支持 Exactly-once 语义

缺点

不是真正的流处理,不适合低延迟要求
要调整的参数太多
许多高级功能落后于Flink

flink

优点

创新
第一个真正的流处理框架,具有Event Time Processing, Watermarksd等高级功能
低延迟,高吞吐量,可根据要求进行配置
自动调整,需要调整的参数较少,调优方便
支持 Exactly-once 语义

Kafka Steams

优点

轻量级库,适用于微服务,物联网应用
支持 Exactly-once 语义
基于kafka
支持Stream连接,内部使用rocksDb来维护状态

缺点

捆绑kafka
技术较新,尚未得到广泛使用
不适用于较为复杂的场景

选型考虑

延迟要求高

毫秒级 storm、kafka steams、flink
秒级 flink、spark streaming

功能复杂度

高级功能需求 flink、spark streaming
功能简单 storm、kafka streams

声明

原创未知 仅供个人学习 转载请说明情况:-)大数据流处理框架对比_第1张图片

你可能感兴趣的:(测试)