Apache Flink的过去、现在和未来

Apache Flink的过去、现在和未来

展开查看详情

1.Apache Flink的过去、现在和未来 杨克特(鲁尼) 阿里巴巴高级技术专家

2.过去

3. 一切从2014年开始 2009 - 2014 2014 • 柏林工业大学博士生项目 • 2014 年 8 月份 发布 Flink 0.6.0 • 基于流式 runtime 的批处理引擎

4. Flink 0.7 2014 年 12 月份 发布 – 开始正式支持 DataStream DataStream API DataSet API Stream Processing Batch Processing Runtime Distributed Streaming Dataflow

5. Flink 0.9 2015 年 6 月份 发布 – 开始内置支持 State Source Offset Computation State Sink Periodic Snapshots

6. Global Checkpoint 新数据 基于 Chandy – Lamport 算法 老数据 Checkpoint Barrier N Checkpoint Barrier N-1 Part of Part of Part of Checkpoint N+1 Checkpoint N Checkpoint N-1 • 吞吐和延迟不再是一个 tradeoff • 支持精准一次的语义,同时对性能的影响较低

7. Flink 1.0 版本基石 Checkpoint State Time Window 基于 Chandy-Lamport 丰富的 State API。 支持基于事件时间的计 开箱即用的滚动、滑 算法,实现了分布式一 ValueState, 算,实现 Watermark 机 动、会话窗口。以及 致性快照,提供了一致 ListState, MapState 制。乱序数据处理,迟 灵活的自定义窗口。 性的语义。 BroadcastState。 到数据容忍。

8.2015 年阿里巴巴开始使用 Flink 并持续贡献社区

9. 重构分布式架构 2. Start job 6. Schedule Task Dispatcher Job Manager Task Manager Task Manager 1. Submit job 3. Request slots 5. Start Task Manager Resource Manager 4. Allocate Container Cluster Manager Client YARN RM K8S RM

10. 增量 Checkpoint 时间 全量状态 增量状态 增量 snapshot

11.基于 credit 的流控机制

12. Streaming SQL Stream Mode: 12:01> SELECT Name, SUM(Score), MAX(Time) FROM USER_SCORES GROUP BY Name; ------------------------- ----------------------------- ---------------------------- ---------------------------- | USER_SCORES | | [-inf, 12:01) | [12:01, 12:04) | [12:04, now) | ------------------------- | ------------------------- | ------------------------- | ------------------------- | | User | Score | Time | | | Name | Score | Time | | | Name | Score | Time | | | Name | Score | Time | | ------------------------- | ------------------------- | ------------------------- | ------------------------- | | Julie | 7 | 12:01 | | | | | | | | Julie | 8 | 12:03 | | | Julie | 12 | 12:07 | | | Frank | 3 | 12:03 | | | | | | | | Frank | 3 | 12:03 | | | Frank | 5 | 12:06 | | | Julie | 1 | 12:03 | | ------------------------- | ------------------------- | ------------------------- | | Frank | 2 | 12:06 | ----------------------------- ---------------------------- ---------------------------- | Julie | 4 | 12:07 | -------------------------

13. Flink 在阿里的服务情况 超万台 PetaBytes 十万亿/天 17亿/秒 集群规模 状态数据 事件处理 峰值能力

14. Flink 的过去 Batch Continuous Processing & ✔ Event-driven Processing Streaming Analytics Applications offline Real-time

15.现在

16. Flink 1.9 的架构变化 Table API & SQL DataStream Table API & SQL Relational Physical Relational DataStream API DataSet API Query Processor Stream Processing Batch Processing DAG & StreamOperator Runtime Runtime Distributed Streaming Dataflow Distributed Streaming Dataflow Local Cluster Cloud Local Cluster Cloud Single JVM Standalone, YARN GCE, EC2 Single JVM Standalone, YARN GCE, EC2

17. 统一 Operator 抽象 Push-based operator Pull-based operator 算子可自定义读取顺序

18. Table API & SQL 1.9 新特性 全新的 SQL DDL Table API 统一的 Blink Planner 类型系统 初步支持 增强 Catalog API

19. What’s new in Blink Planner 数据结构 更丰富的 Minibatch 多种解热点 二进制化 内置函数 聚合函数 手段 维表关联 TopN 高效的 完整的 支持 流式去重 批处理支持

20.批处理错误恢复(1)

21.批处理错误恢复(2)

22.批处理错误恢复(3)

23.批处理错误恢复(4)

24.批处理错误恢复(5)

25.插件化 Shuffle Manager

26. 生态 Flink Hive Flink Zeppelin

27.中文社区

28. Flink 的现在 Batch ✔ Continuous Processing & ✔ Event-driven Processing Streaming Analytics Applications offline Real-time

29.未来