大数据计算引擎发展的四个阶段
Flink特性
- 高吞吐、低延时(与storm相比)
- 支持Event Time & 乱序事件
- Flink支持流处理和Event Time语义的窗口机制。Event time使得九三乱序达到的事件或可能延迟达到的事件更加简单。
- 高度灵活的流式窗口
- Flink支持在时间窗口,统计窗口,session窗口,以及数据驱动的窗口,窗口可以通过灵活的触发条件来定制,以支持复杂的流计算模式。
- 容错性
- Flink的容错机制是基于Chandy-Lamport distributed snapshots来实现的。这种机制是非轻量级的,允许系统拥有高吞吐率的同时还能提供强一致性的保障。
- 流处理和批处理共用一个引擎
- Flink为流处理和批处理应用公用一个通用的引擎。批处理应用可以以一种特殊的流处理应用高效地运行。
- 内存管理
- Flink在JVM中实现了自己的内存管理。应用可以超出主内存的大小限制,并且承受更少的垃圾收集的开销。
- 程序调优
- 批处理程序会自动地优化一些场景,比如避免一些昂贵的操作(如shuffles和sorts),还有缓存一些中间数据。
- 类库生态
- Flink栈中提供了很多高级API和满足不同场景的类库:机器学习、图分析、关系式数据处理。
- 广泛集成
- Flink与开源大数据处理生态系统中的许多项目都有集成。Flink可以运行在YARN上,与HDFS协同工作,从kafka中读取流数据,可以执行Hadoop程序代码,可以连接多种数据存储系统。
、