流式计算产品对比(Storm、Trident、Spark Streaming、Flink)
2016-04-10 17:01
579 查看
产品 | 模型 | API | 保证次数 | 容错机制 | 状态管理 | 延时 | 吞吐量 | 成熟度 |
---|---|---|---|---|---|---|---|---|
Strom | Native | 组合式 | At-least-once | Record ACKs | 无 | Very Low | Low | High |
Trident | mirco-batching | 组合式 | Exectly-once | Record ACKs | 基于操作的状态管理 | Low | Low | High |
Spark streaming | mirco-batching | 声明式 | Exectly-once | RDD Checkpoint | 基于DDStream的状态管理 | Low | Low | High |
Flink | Native | 组合式 | Exectly-once | Checkpoint | 基于操作的状态管理 | Low | High | Low |
1. 模型 Streaming Model
Naitve:数据进入立即处理;Micro-Batch:数据流入后,先划分成Micro-Batch,再处理;
2. API 形式
组合式:操作更加基础的API操作,一步步精细控制,各组建组合定义成拓扑;声明式:提供封装后的高阶函数。封装后可提供初步的优化;可提供窗口管理、状态管理等高级操作;
3. 保证机制
At-least-once,至少一次,出错情况下需要执行多次;Exectly-once,一次执行,保证OK;
4. 容错机制
Record ACKs,每Tuple处理后经过ACK确认;RDD Checkpoint,基于RDD做Checkpoint。只需要重新计算特定RDD;
Checkpoint:Flink的checkpoint,是一种快照(待补充详细介绍)
5. 状态管理
基于操作的状态管理:每次操作有一个状态;基于数据的状态管理:每个数据有相应的处理状态;
6. 延时&吞吐量
怎么样制定测试方案?7. 成熟度
产品成熟度,基于Flink已经在2016.3分布1.0版本,怎么界定成熟度?8. 后记
Twitter后期开发的Heron,能否加入比对阵营。有个不错的翻译文档:http://developer.51cto.com/art/201603/507444.htm
相关文章推荐
- NOJ1008-第几天
- 批量处理更改文件名字
- Broadcom里的俗世奇葩
- Leetcode - Count and Say
- 关于重建二叉树问题已经二叉树前序排列和中序排列求二叉树
- CocoaPods使用详细说明
- Jdk的安装及配置
- ubuntu中用python把文件的编码改成utf8
- 使用python对redis操作
- Android Studio 入门
- 剑指offer系列之8:跳台阶问题
- “框架”与“库”在概念上的差异分析
- 线性表的顺序存储的基本操作
- Leetcode no. 201
- 《深入理解计算机系统》第七章学习笔记
- Timus 1204 Idempotents
- 编程
- 使用JDBC获取各数据库的Meta信息——表以及对应的列
- Java中引用类型变量的转换
- C#中定时器timer的使用