阿里巴巴资深技术专家莫问在2017年12月20日云栖大会北京峰会上做了题为“Apache Flink技术进阶”的主题演讲 。Apache Flink作为流式计算引擎,支持了“双十一对的”实时计算,已经被国内外的公司使用 。其中关于“Flink的技术特点”、“阿里巴巴的Flink版本——Blink”以及“Blink在实际场景中的应用” 等经验首次对外详细剖析,很有价值 。
以下为视频内容整理:
Apache Flink介绍Flink是Storm之后出现的第二个纯流式计算引擎,其特点是支持毫秒级的延迟,同时支持 “至少一次”语义的保证 。目前在阿里巴巴的“双十一”上面支持了每秒四亿次的计算 。

文章插图
Flink提供了不同的抽象级别来开发流/批处理应用程序:
- 最下面一层是有状态的分布式流式执行引擎 。
- 第二层是core APIs,包括DataStream/DataSet API 。DataStream API是针对流式的输入,比如队列、日志等;DataSet API是针对有长度的数据源,比如一个文件 。
- 第三层提供了基于DSL的table API 。这层把所有的数据源都抽象成table,支持类SQL的开发语言,可以用Java来编写 。
- 第四层是高级SQL语言 。
Flink相对于Storm来说有许多特性 。Flink第一个特性是支持有状态的计算 。Flink内置了状态管理,可以保证高性能计算和数据的一致性 。有了状态之后,Flink就可以提供“恰好一次”语义 。如果业务场景接受,也可以支持“至少一次”语义 。state也支持checkpoint,recovery,Upgrade,version等 。
第二层是core APIs,包括DataStream/DataSet API 。DataStream API是针对流式的输入,比如队列、日志等;DataSet API是针对有长度的数据源,比如一个文件 。
第三层提供了基于DSL的table API 。这层把所有的数据源都抽象成table,支持类SQL的开发语言,可以用Java来编写 。
第四层是高级SQL语言 。
Flink相对于Storm来说有许多特性 。Flink第一个特性是支持有状态的计算 。Flink内置了状态管理,可以保证高性能计算和数据的一致性 。有了状态之后,Flink就可以提供“恰好一次”语义 。如果业务场景接受,也可以支持“至少一次”语义 。state也支持checkpoint,recovery,Upgrade,version等 。

文章插图
Flink的第二个特性就是在流里面加window 。因为流是一条一条来处理记录,但是在很多场景上是远远不够的 。因为业务可能需要把最近一段时间的数据攒起来做一次聚合,并做全局性的判断才能得到结论 。window功能很好的解决了这个问题 。Flink支持两种类型的window 。一种是时间驱动,比如最近30秒或者每隔30秒取一次数据 。一种是数据驱动,比如最近1000条或者是每隔1000条取一次 。常见的Window有三种类型:Sliding window(没有重叠),Tumbling window(有重叠),Session window(基于session)

文章插图
使用window之后,在分布式系统中就很难保证所有的数据在源头产生数据的顺序和接收数据的顺序保持一致,会出现乱序的问题 。Flink采用了标准的乱序处理方案——watermark技术 。这个技术是在源头定期发送watermark,保证之前的数据顺利到达 。watermark到达之后就触发window,进行window的计算 。有了watermark和window,可以在流计算里面根据时序关系,实施更为复杂的计算 。

- 佳能800d参数在哪里设置 佳能相机800d价格
- 苹果密码怎么设置四位数的 苹果密码设置在哪里设置的
- 铁树放在哪里好 铁树放在哪里风水最好
- 淘宝卖家店小二在哪里找 淘宝店小二入口
- 造梦西游3火龙岛掉什么 造梦西游3火龙岛在哪里
- mysql中如何创建表 cmd命令怎么打开mysql数据库
- 天猫有苹果官方旗舰店吗 苹果天猫旗舰店是官方直营吗
- 苹果手机怎样设置悬浮球双击截图 苹果手机取消悬浮球在哪里
- 家国梦官网礼包 家国梦礼包兑换
- 元大都遗址位于现在哪里 元朝大都是现在哪个地方
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
