1、Apache Flink的过去、现在和未来杨克特(鲁尼)阿里巴巴高级技术专家过去一切从20142014年开始柏林工业大学博士生项目基于流式 runtimeruntime 的批处理引擎20142014 年 8 8 月份 发布 FlinkFlink 0.6.00.6.0Flink 0.7RuntimeDistributed Streaming DataflowDataStream APIStream ProcessingDataSet APIBatch Processing20142014 年 1212 月份 发布 开始正式支持 DataStreamDataStreamF
2、link 0.9SinkSource OffsetComputation StatePeriodic Snapshots20152015 年 6 6 月份 发布 开始内置支持 StateStateGlobal Checkpoint新数据老数据Checkpoint Barrier NCheckpoint Barrier N-1Part ofCheckpoint N+1Part ofCheckpoint NPart ofCheckpoint N-1吞吐和延迟不再是一个 tradeofftradeoff支持精准一次的语义,同时对性能的影响较低基于 ChandyChandy LamportLampor
3、t 算法Flink 1.0 版本基石Checkpoint基于 ChandyChandy-LamportLamport算法,实现了分布式一致性快照,提供了一致性的语义。丰富的 StateState APIAPI。ValueStateValueState,ListStateListState,MapStateMapStateBroadcastStateBroadcastState。支持基于事件时间的计算,实现 Watermark Watermark 机制。乱序数据处理,迟到数据容忍。开箱即用的滚动、滑动、会话窗口。以及灵活的自定义窗口。StateTimeWindow2015 年阿里巴巴开始使用 F
4、link 并持续贡献社区重构分布式架构ClientDispatcherJob ManagerTask ManagerResource ManagerCluster ManagerTask Manager1.Submit job2.Start job3.Request slots4.Allocate Container5.Start Task Manager6.Schedule TaskYARN RMK8S RM增量 CheckpointCheckpoint时间全量状态增量状态增量 snapshot基于 creditcredit 的流控机制Streaming SQLStreaming SQL-|
5、USER_SCORES|-|User|Score|Time|-|Julie|7|12:01|Frank|3|12:03|Julie|1|12:03|Frank|2|12:06|Julie|4|12:07|-|-inf,12:01)|-|Name|Score|Time|-|-|-12:01,12:04)|-|Name|Score|Time|-|Julie|8|12:03|Frank|3|12:03|-|-12:04,now)|-|Name|Score|Time|-|Julie|12|12:07|Frank|5|12:06|-|-Stream Mode:12:01 SELECT Name,SUM(
6、Score),MAX(Time)FROM USER_SCORES GROUP BY Name;FlinkFlink 在阿里的服务情况集群规模超万台状态数据PetaBytes事件处理十万亿/天峰值能力17亿/秒FlinkFlink 的过去offlineReal-timeBatchProcessingContinuous Processing&Streaming AnalyticsEvent-drivenApplications现在Flink 1.9 Flink 1.9 的架构变化RuntimeDistributed Streaming DataflowQuery ProcessorDAG&Str
7、eamOperatorLocalSingle JVMCloudGCE,EC2ClusterStandalone,YARNRuntimeDistributed Streaming DataflowDataStream APIStream ProcessingDataSet APIBatch ProcessingTable API&SQLRelationalTable API&SQLRelationalLocalSingle JVMCloudGCE,EC2ClusterStandalone,YARNDataStreamPhysical统一 OperatorOperator 抽象Pull-based
8、 operatorPush-based operator算子可自定义读取顺序Table API&SQL 1.9 新特性全新的 SQL类型系统DDL初步支持Table API增强统一的Catalog APIBlink PlannerWhats new in Blink PlannerWhats new in Blink Planner数据结构二进制化更丰富的内置函数Minibatch聚合函数多种解热点手段维表关联支持TopN高效的流式去重完整的批处理支持批处理错误恢复(1 1)批处理错误恢复(2 2)批处理错误恢复(3 3)批处理错误恢复(4 4)批处理错误恢复(5 5)插件化 ShuffleS
9、huffle ManagerManager生态FlinkHiveFlinkZeppelin中文社区FlinkFlink 的现在offlineReal-timeBatchProcessingContinuous Processing&Streaming AnalyticsEvent-drivenApplications未来Micro ServicesO_0O_1I_0I_1I_2P_0P_1P_2S_0S_1OrderOrderInventoryInventoryPaymentPaymentShippingShippingFlow-ControlAsync CallAuto ScaleState ManagementEvent DrivenFlinkFlink 的未来offlineReal-timeBatchProcessingContinuous Processing&Streaming AnalyticsEvent-drivenApplications