作者:高二蛋
来源: 恒生LIGHT云社区
主要内容:
- Flink是什么
- 为什么用Flink?
- 流处理的发展和演变
- Flink的主要特点
- Flink VS Spark Streaming
1.Flink是什么
- Flink是一个框架(可以处理流和批处理的框架)和分布式处理引擎,用于对无界数据和有界数据流进行状态计算;
2.为什么选择 Flink:
- 流数据更真实的反应我们的生活方式;
- 传统的数据架构是基于有限数据集的;
- 我们的目标:
- 低延迟;
- 吞吐性;
- 结果的准确性和良好的容错性;
3.哪些行业需要处理流数据呢?
-
电商和市场营销:
- 数据报表,广告投放,业务流程需要;
-
物联网(IOT):
- 传感器实时数据的采集和显示,实时报警,交通运输业;
-
电信业:
- 基站流量匹配;
-
银行和金融业:
- 实时结算和通知推送,实时监测异常行为;
4.流式处理的演变:
https://developer.hs.net/thread/1009
5.Flink主要特点:
- 事件驱动:
-
- 基于流的世界观:
-
- 分层API:
-
- 支持事件事件(event-time)和处理时间(processing-time)语义;
- 精确一次(exactly-once)的状态一致性保证;
- 低延迟,每秒处理百万个事件,毫秒级延迟;
- 与众多常用存储系统的连接;
- 高可用,动态扩展,实现7*24小时全天候运行;
6.flink VS Spark Streaming:
- 结构:
- Flink:流(stream)
- Spark Streaming:微批(micro-batching)
- 数据模型:
- Flink:基本数据模型就是数据流,以及事件(Event)序列;
- Spark采用RDD模型,SparkStreaming的DStream实际上也就是一组组小批数据RDD的集合;
- 运行时架构:
- Flink:是标准的流执行模式,一个事件在一个节点处理完后可以直接发往下一个节点进行处理;(因为没有stage的划分,所以延迟性低)
- Spark是批处理,将DAG划分为不同的stage,一个完成之后才可以计算下一个;