实时计算的概述与业内框架
一、什么实时计算
数据和业务形成闭环
数据的机制实效性(数据的价值随着时间延迟迅速降低)
大数据实时化(越快越有竞争优势,大数据实时化--实时计算
1、大数据计算的一些概念
2、离线计算和实时计算
3、批量处理和流式处理
4、实时计算的特性
1、实时且无界的数据流(顺序处理,持续流入)
2、持续且高效的计算(事件触发,持续计算)
3、流式且实时的数据集成(一次触发一次写入,持续触发)
二、业内主流大数据框架
1、storm
Storm是Twitter开源的分布式实时大数据处理框架
优势:
框架简单,学习成本低
实时性很好,可以提供毫秒级延迟
稳定性很好,框架比较成熟
劣势:
编程成本较高
框架处理逻辑和批处理完全不一样,无法共用代码
框架Debug较为复杂
2、SparkStreaming
SparkStreaming是Spark核心API的一个扩展,可以实现高吞吐量的,具备容错机制的实时流数据处理。
优势:
编程原语丰富,编程简单
框架封装层级较高,封装性好
可以共用批处理处理逻辑,兼容性好
基于Spark,可以无缝内嵌Spark其他子项目,如Spark Sql,MLlib等
劣势:
微批处理,时间延迟大
稳定性相对较差
机器性能消耗较大
3、Apache Flink
Apache Flink是一种可以处理批处理任务的流处理框架。
优势
Flink流处理为先的方法可提供低延迟,高吞吐率,近乎逐项处理的能力
Flink的很多组件是自行管理的
通过多种方式对工作进行分析进而优化任务
提供了基于Web的调度视图
4、主流框架进行对比
** ** | 模型 | API | 保证次数 | 容错机制 | 延时 | 吞吐量 | 批流统一 | 业务模式 | 易用性 |
---|---|---|---|---|---|---|---|---|---|
Storm | Native | 组合式 | At-least-once | Record ACKs | ★★★ | ★ | 不支持 | 需要其他框架 | ★ |
Spark Streaming | Mirco-batching | 声明式 | Exectly-once | RDD Checkpoint | ★ | ★★★ | 支持 | 需要其他框架 | ★★ |
Apache Flink | Native | 组合式 | Exectly-once | Checkpoint | ★★★ | ★★★ | 支持 | 需要其他框架 | ★★ |