Flink初探

一、Flink是什么

Apache Flink是一个分布式大数据处理引擎,可对有限数据流和无限数据流进行有状态计算。可部署在各种集群环境,对各种大小的数据规模进行快速计算。

二、Flink前世今生

Flink诞生于2009年,原来叫StratoSphere,是柏林工业大学的一个研究性项目,早期专注于批计算。
2014年孵化出Flink并捐给Apache
2015年开始引起大家注意

2016年在阿里得到大规模应用

2016年至今崭露头角

三、Flink的特性

(1)支持批处理和数据流程序处理
(2)优雅流畅的支持java和scala api
(3)同时支持高吞吐量和低延迟
(4)支持事件处理和无序处理通过DataStream API,基于DataFlow数据流模型
(5)在不同的时间语义(事件时间,摄取时间、处理时间)下支持灵活的窗口(时间,滑动、翻滚,会话,自定义触发器)
(6)仅处理一次的容错担保
(7)自动反压机制
(8)图处理(批) 机器学习(批) 复杂事件处理(流)
(9)在dataSet(批处理)API中内置支持迭代程序(BSP)
(10)高效的自定义内存管理,和健壮的切换能力在in-memory和out-of-core中
(11)兼容hadoop的mapreduce和storm
(12)集成YARN,HDFS,Hbase 和其它hadoop生态系统的组件

四、Flink生态

五、Flink应用场景

(1)Event-driven Applications 事件驱动

典型的事件驱动类应用:
  1)欺诈检测(Fraud detection)
  2)异常检测(Anomaly detection)
  3)基于规则的告警(Rule-based alerting)
  4)业务流程监控(Business process monitoring)
  5)Web应用程序(社交网络)

(2)Data Analytics Applications  数据分析

 

(3)Data Pipeline Applications   管道ETL

Flink在阿里的实践

阿里Flink应用场景案例剖析-欺诈检测

系统流程:
1)用户的行为经由app 上报或web日志记录下来,发送到一个消息队列里去;
2)然后流计算订阅消息队列,过滤出感兴趣的行为,比如:购买、领券、浏览等;
3)流计算把这个行为特征化;
4)流计算通过UDF调用外部一个风险模型,判断这次行为是否有问题(单次行为);
5)流计算里通过CEP功能,跨多条记录分析用户行为(比如用户先做了a,又做了b,又做了3次c),整体识别是否有风险;
6)综合风险模型和CEP的结果,产出预警信息。

 

六、流处理框架对比

类别Record ACKMicro-batchingTransactional updatesDistributed snapshots
典型代表Apache Storm

Apache Storm Trident,

Apache Spark Streaming

Google Cloud DataflowApache Flink
语义保证At least onceExactly onceExactly onceExactly once
延迟较低 (事务延迟)
吞吐较高 (取决于做事务存储吞吐)
计算模型微批
容错开销较低 (取决于事务存储的吞吐)
流控较差较差
业务灵活性 (业务和容错分离)部分紧耦合分离分离
原理Source保留其产生的所有记录备份,当源头一条记录的所有派生记录都被整个 Topology 处理完成,Source 节点就可以删除其备份连续的数据流不要切分到 record 级别,而是收敛切分为一批一批微批的、原子的数据进行类似 Batch 的计算。每个 batch 的数据可能会成功或者失败处理,我们就对当前失败的这一小批数据进行处理即可原子地记录数据的处理以及状态的更新 (类似数据的 WAL 日志)。 一旦系统出现 Fail,可从记录的日志中恢复我们需要的中间计算状态和需要处理数据确定当前流式计算的状态 (包括正在处理的数据,以及 Operator 状态),生成该状态的一致快照,并存储在持久存储中

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值