什么是flink
Flink是一个框架和分布式处理引擎,用于对无界和有界数据流进行状态计算。
为什么选择Flink
1.流数据更改真实的反应了我们的生活方式
2.传统的数据架构是基于有限的数据集的
3.我们的目标
》低延迟
》高吞吐
》结果的准确性和良好容错性
那些行业需要处理流数据
电商和市场营销(数据报表、广告投放、业务流程需要)
物联网IOT(传感器实时采集和显示、实时警报、交通运输业)
电信业(基站流量调配)
银行和金融业(实时结算和通知推送、实时监测异常行为)
Flink主要特点
-
事件驱动(event-driven)
-
基于流的世界观
在flink的世界观中,一切都是由流组成的,离线数据是有界的流,实时数据是无界的流,这就是有界流和无界流
-
分层API
越顶层的越抽象,表达含义越简明,使用越方便
越底层的越具体,表达能力越丰富,使用越灵活
-
支持事件时间和处理时间
-
精确一次的状态一致性保证
-
低延迟,每秒处理数百万时间,毫秒级的响应
-
与众多的常用存储系统连接
-
高可用,动态扩展,实现7*24小时全天运行
sparkStreaming VS flink
-
数据流和微批次
-
数据模型
spark采用RDD模型,sparkStreaming的DStream实际上是一组组小批微数据RDD的集合
flink基本数据模型是数据流,以及事件序列
-
运行时的架构
spark是批计算,将DAG划分为不同的stage,一个完成后才可以计算下一个
flink是标准的流执行模式,一个事件在一个节点处理完成可以直接发往下一个节点进行处理