Flink入门
流式计算引擎的发展
1、mapreduce
不能做流式计算,底层java实现
2、storm
用来做流式计算,底层clojure,java实现
阿里将storm发扬光大,组建了一个团队,使用java对storm进行了重写,起名jstorm,但是最终阿里将jstorm项目撤掉了。因为storm只能做流式计算。
spark streaming产生
flink产生
3、flink
apache维持了一个分支进行flink的开发
阿里也维持了一个分支进行blink的开发
现阶段正进行将blink的功能融合到flink的过程
flink的特征
1、Flink 核心特性分析:
支持高吞吐、低延迟、高性能的流处理
支持带有事件时间的窗口(Window)操作
支持有状态计算的 Exactly-once 语义
支持高度灵活的窗口(Window)操作,支持基于 time、count、session,以及 datadriven
的窗口操作
支持具有 Backpressure 功能的持续流模型
支持基于轻量级分布式快照(Snapshot)实现的容错
一个运行时同时支持 Batch on Streaming 处理和 Streaming 处理
Flink 在 JVM 内部实现了自己的内存管理
支持迭代计算
支持程序自动优化:避免特定情况下 Shuffle、排序等昂贵操作,中间结果有必要进
行缓存
2、Flink 特点:
Streaming-first、流处理引擎。
Fault-tolerant,容错,可靠性,checkpoint。
Scalable,可扩展性,1000 节点以上。
Performance,性能,高吞吐量, 低延迟。
3、Flink 关键特性:
低延时:提供 ms 级时延的处理能力。
Exactly Once:提供异步快照机制,保证所有数据真正处理一次。
HA:JobManager 支持主备模式,保证无单点故障。
水平扩展能力:TaskManager 支持手动水平扩展。
4、Hadoop 兼容性:
Flink 能够支持 Yarn,能够从 HDFS 和 HBase 中获取数据。
能够使用所有的 Hadoop 的格式化输入和输出。
能够使用 Hadoop 原有的 Mappers 和 Reducers,并且能与 FLink 的操作混合使用。
能够更快的运行 Hadoop 作业。