Apache Flink

Apache Flink is a framework and distributed processing engine for stateful computations over unbounded and bounded data streams. Flink是对有界/⽆界数据流进⾏有状态计算的计算框架和分布式计算引擎?本篇介绍其应⽤场景及开源社区。
展开查看详情

1.Apache Flink 分享 赵开兴(纯庚) 2019.3

2.1、Apache Flink是什什么 2、Apache Flink应⽤用场景 3、Apache flink开源社区

3.什什么是Flink Apache Flink is a framework and distributed processing engine for stateful computations over unbounded and bounded data streams. Flink是对有界/⽆无界数据流进⾏行行有状态计算的计算框架和分布式计算引擎 ■ 有界/⽆无界数据流:流计算/批计算 ■ 分布式处理理引擎:⼤大规模部署 ■ 状态计算:内置状态、容错机制 ■ 计算框架:批流统⼀一

4.1、Apache Flink是什什么 • 有界/⽆无界数据流 • 分布式处理理引擎 • 状态计算 • 计算框架

5.流式计算模型 上游 计算节点 下游 User Code User Producer Code User Code 对不不间断的数据流持续执⾏行行计算

6.批/流计算的区别 批计算 流计算 2 1 提交请求 3 2 实时数据流 实时结果流 装载数据 返回结果 3 提交流式任务 1 批计算:批量量、⾼高时延、主动发起的计算任务 流计算:持续、低时延、事件触发的计算任务 有界数据 ⽆无界数据

7.有界/⽆无界数据流 ■ 有界流:有确定的开始和结束,可以等到所有数据到达后再计算,可以批量量计算 ■ ⽆无界流:有开始⽆无结束,⽆无法等到所有数据到达后计算,需要持续计算/流式计算

8.窗⼝口实现 ● Window Assigner:⽤用来决定 某个元素被分配到哪个/哪些 窗⼝口中去 ● Trigger:触发器器。决定了了⼀一 个窗⼝口何时能够被计算或清 除,每个窗⼝口都会拥有⼀一个⾃自 ⼰己的Trigger ● Evictor:在Trigger触发之 后,在窗⼝口被处理理之前, Evictor(如果有Evictor的 话)会⽤用来剔除窗⼝口中不不需要 的元素,相当于⼀一个filter ● Evaluation Function:窗⼝口计 算函数

9.窗⼝口分类 ● 会话窗⼝口 ● 计数窗⼝口 ● 时间窗⼝口

10.时间分类 ■ 事件时间:数据产⽣生 ■ 摄⼊入时间:数据进⼊入Flink

11.Watermark Watermark:衡量量event time的进度,⽤用于触发窗⼝口结束。接收到wk=t 时,表示后续不不会再接收到t’<=t的数据 ⼀一定程度上解决数据乱序问题

12.Watermark ■ 单并发:Watermark单调递增 ■ 多并发:Watermark取最⼩小值

13.1、Apache Flink是什什么 • 有界/⽆无界数据流 • 分布式处理理引擎 • 状态计算 • 计算框架

14.分布式处理理引擎

15.分布式处理理引擎

16.Flink on Yarn

17.1、Apache Flink是什什么 • 有界/⽆无界数据流 • 分布式处理理引擎 • 状态计算 • 计算框架

18.有状态计算 • 什什么是有状态计算? • 需要处理理跨多条记录信息的计算 User code • 状态⼀一致性 • exactly once • at least once state • 状态管理理 • checkpoint, recovery • counters: sum, max, min, average, etc. • upgrade, version • windows: time/count window • machine learning: model parameters

19.Checkpoint

20.Snapshot/Recovery source state (embedded key-value store) operator Sink operator offset snapshot persistent storage (HDFS)

21.1、Apache Flink是什什么 • 有界/⽆无界数据流 • 分布式处理理引擎 • 状态计算 • 计算框架

22.计算框架-API Programming Model SQL High-level Language Table API Declarative DSL DataStream / DataSet API Core APIs Low-level Building Block Stateful Streaming Processing (streams, state, [event] time)

23.计算框架-批流统⼀一 流计算引擎 批流统⼀一的⼤大 批计算引擎 数据计算引擎 samza Apex Apache Flink

24.Flink特性-总结 低延迟:纯流式处理理、增量量计算 易易⽤用性:丰富窗⼝口、Time类型 分布式引擎:并⾏行行处理理、Yarn/Mesos、⼤大规模部署 快速容错:state、⼀一致性/增量量checkpoint 计算框架:通⽤用的API、批流统⼀一

25.1、Apache Flink是什什么 2、Apache Flink应⽤用场景 3、Apache flink开源社区

26.Flink应⽤用场景 ● 数据同步 批 ● 实时数仓 + 流 ● 实时⼤大屏 ● 实时报表 + AI ● 实时监控 ● 实时推荐 + ⾦金金融⻛风控 IOT ● ● 复杂事件处理理

27.Flink在中国

28.1、Apache Flink是什什么 2、Apache Flink应⽤用场景 3、Apache flink开源社区

29.Blink与Flink融合 Blink = Alibaba‘s Flink Version ■ Blink拥抱Apache Flink开源社区 • Blink全⾯面兼容Apache Flink API ■ Blink在阿⾥里里巴巴的场景对Flink的优化改进,⼀一直在不不 断回馈开源社区 • Flink计算和调度架构分离,可以更更⼤大规模的部署到YARN/Mesos 以及阿⾥里里内部的调度系统 Blink开源啦!!! • Failover优化,提升⼤大规模⽣生产稳定性 • Incremental Checkpoint,提升⼤大规模State场景下的性能 https://github.com/apache/flink/tree/blink • Asynchrous I/O,提升计算吞吐量量 • 完善Streaming SQL语义和实现 ■ Blink在Flink社区影响⼒力力 • Blink团队中已经培养出数名Flink Committer • Blink团队已经连续3次赞助、参加/组织Flink Forward,并在⼤大会

StreamNative 是一家围绕 Apache Pulsar 和 Apache BookKeeper 打造下一代流数据平台的开源基础软件公司。秉承 Event Streaming 是大数据的未来基石、开源是基础软件的未来这两个理念,专注于开源生态和社区的构建,致力于前沿技术。