首页 > 技术,让世界更美好。 > 流式计算框架比较

流式计算框架比较

2018年3月9日

SparkStreaming:

适合可以容忍秒级别延迟,大吞吐量计算,社区完善,和spark集成度高

Storm:

适合吞吐量小,即时性要求高的实时计算,storm框架最为成熟,社区支持也完善

flink:

适合时间即时性要求高的实时计算,吞吐量大于storm,即时性同样亚秒级别

 

Apache

Flink

SparkStreaming

Storm

架构

架构介于spark和storm之间,主从结构与spark streaming相似,DataFlow Grpah与Storm相似,数据流可以被表示为一个有向图。 每个顶点是一个用户定义的运算,每向边表示数据的流动。

 

Native

架构依赖spark,主从模式,每个Batch处理都依赖主(driver),可以理解为时间维度上的spark DAG。

 

 

Micro-Batch

主从模式,且依赖ZK,处理过程中对主的依赖不大。

 

 

 

 

Native

容错

基于Chandy-Lamport distributed snapshots checkpoint机制

Medium

WAL及RDD 血统机制

 

High

Records ACK

 

Medium

处理模型与延迟

单条事件处理

亚秒级低延迟

一个事件窗口内的所有事件。

秒级高延迟

每次传入的一个事件

亚秒级低延迟

吞吐量

High

High

Low

数据处理保证

exactly once

High

exactly once(实现采用Chandy-Lamport 算法,即marker-checkpoint )

High

at least once(实现采用record-level acknowledgments),Trident可以支持storm 提供exactly once语义。

Medium

高级API

Flink 栈中提供了提供了很多具有高级 API 和满足不同场景的类库:机器学习、图分析、关系式数据处理

High

能够很容易的对接Spark生态栈里面的组件,同时能够对接主流的消息传输组件及存储系统。

High

应用需要按照特定的storm定义的规则编写。

 

 

Low

易用性

支持SQL Steaming,Batch和STREAMING采用统一编程框架

High

支持SQL Steaming

Batch和STREAMING采用统一编程框架。

High

不支持SQL Steaming

 

 

Low

成熟性

新兴项目,处于发展阶段。

Low

已经发展一段时间

Medium

相对较早的流系统,比较稳定。

High

社区活跃度

212 contributor,活跃度呈上升趋势。

Medium

937 contirbutor

High

 216 contributors,活跃度比较稳定。

Medium

部署性

部署相对简单,只依赖JRE环境

Low

部署相对简单,只依赖JRE环境

Low

依赖JRE环境和Zookeeper

High

参考:

https://zhuanlan.zhihu.com/p/31217561

本文的评论功能被关闭了.