NASAC2019-Apache Flink 的过去、现在和未来

NASAC 2019开源大数据系统软件社区资深管理员论坛
Apache Flink 的过去、现在和未来
https://www.slidestalk.com/m/64

展开查看详情

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

2. 01 Apache Flink 简单介绍 02 CONTENT Apache Flink 历史回顾 目录 >> 03 Apache Flink 现状介绍 04 Apache Flink 未来计划

3.Apache Flink 是什么? Apache Flink is a distributed processing engine for stateful computations over unbounded and bounded data streams.

4.Apache Flink 核心理念 Streams as a Paradigm 有限流 有限流 过去 现在 未来 无限流 无限流

5.Apache Flink 计算场景 Batch Continuous Processing & Event-driven Processing Streaming Analytics Applications offline Real-time

6.Apache Flink 使用场景

7.Apache Flink 历史回顾 2009 - 2014 2014+

8.引入 DataStream API 2014 年 12 月份 发布 0.7 版本 – 开始支持 DataStream DataStream API DataSet API Stream Processing Batch Processing Distributed Streaming Dataflow

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

10.Flink 全局检查点 Chandy - Lamport 分布式全局快照算法 新数据 老数据 检查点标记 N 检查点标记 N-1 全局检查点 N+1 全局检查点 N 全局检查点 N-1 • 引入状态并且提供全局检查点是 Flink 的一大创新 • 在支持 Exactly Once 的语义下,还能同时保证高吞吐和低延时

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

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

13.Flink + Alibaba 2015 年阿里巴巴开始使用 Flink 并持续贡献社区

14.Flink 流批一体架构演进(过去)

15.Flink 流批一体架构演进(现在)

16.Flink 流批一体架构演进(未来)

17.SQL - 流批统一的 API Unified Understandable Declarative Optimized Stable

18. 流批语义一致性 流计算模式: 12:01> SELECT Name, SUM(Score), MAX(Time) FROM USER_SCORES GROUP BY Name; 计算每个用户的总分和 ----------------------------- -------------------------------------------------------- 最后得分时间 | [-inf, 12:01) | [12:01, 12:04) | [12:04, now) | | ------------------------- | ------------------------- | ------------------------- | ------------------------- | | Name | Score | Time | | | Name | Score | Time | | | Name | Score | Time | | | USER_SCORES | | ------------------------- | ------------------------- | ------------------------- | ------------------------- | | | | | | | Julie | 8 | 12:03 | | | Julie | 12 | 12:07 | | | User | Score | Time | | | | | | | | Frank | 3 | 12:03 | | | Frank | 5 | 12:06 | | ------------------------- | ------------------------- | ------------------------- | ------------------------- | | Julie | 7 | 12:01 | ----------------------------- -------------------------------------------------------- | Frank | 3 | 12:03 | | Julie | 1 | 12:03 | | Frank | 2 | 12:06 | 批处理模式: | Julie | 4 | 12:07 | ------------------------- 12:07> SELECT Name, SUM(Score), MAX(Time) FROM USER_SCORES GROUP BY Name; ------------------------- | Name | Score | Time | 1. 流和批计算形式不同,流有 Early Fire ------------------------- | Julie | 12 | 12:07 | 2. 流和批最终结果相同,语义一致 | Frank | 5 | 12:06 | -------------------------

19. SQL 流程简介 SubQuery Filter/Project Join Decorrelation Pushdown Reorder Logical Cost-based Physical Execution TableAPI & SQL Plan Optimizer Plan DAG Pluggable Catalog Code Optimizations State-of-art Operators Resource Optimizations Operate on binary data Cache efficient sorter Fully managed memory Code generated operators Compact binary hash map Scheduler hint JVM intrinsic Hybrid hash join IO Manager Declarative expressions Asynchronous operators Offheap memory

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

21.重构分布式架构 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 K8S RM RM

22.插件化 Shuffle Service

23.批处理错误恢复优化

24.批处理错误恢复优化

25.批处理错误恢复优化

26.批处理错误恢复优化

27.批处理错误恢复优化

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

29.Apache 软件基金会 2019 财年报告 • 开发活跃度:代码 commit 次数 Top 5 - Camel, Hadoop, HBase, Beam, and Flink • 用户活跃度:开发和用户邮件列表的邮件数 Top 5 - Flink, Beam, Lucene, Ignite, and Kafka • 流量热度:Github 上所有 Apache 项目流量 Top 5 - Spark, Camel, Flink, Kafka, and Airflow