其他
Flink 引擎在快手的深度优化与生产实践
▼ 关注「Apache Flink」,获取更多技术干货 ▼
摘要:本文整理自快手实时计算团队技术专家刘建刚在 Flink Forward Asia 2021 生产实践专场的演讲。主要内容包括:
快手 Flink 的历史及现状
Flink 容错能力提升
Flink 引擎控制与实践
快手批处理实践
未来规划
Tips:点击「阅读原文」查看原文视频&PPT~
01
快手 Flink 的历史与现状
2018 年我们针对 Flink 1.4 进行了平台化建设并大幅提升运维管理能力,达到了生产可用。 2019 年我们开始基于 1.6 版本进行迭代开发,很多业务都开始实时化,比如优化 interval join 为商业化等平台带来显著收益、开发实时多维分析加速超大多维报表的实时化,这一年我们的 Flink SQL 平台也投入使用。 到了 2020 年,我们升级到 1.10,对 sql 的功能进行了非常多的完善,同时进一步优化 Flink 的核心引擎,保障了 Flink 的易用性、稳定性、可维护性。 2021 年我们开始发力离线计算,支持湖仓一体的建设,进一步完善 Flink 生态。
最核心、最底层是 Flink 的计算引擎,包括流计算和批处理,我们针对稳定性和性能做了大量工作。 外面一层是跟 Flink 打交道的周边组件,既有 Kafka、rocketMQ 等中间件,也有 ClickHouse、Hive 等数据分析工具,还有 Hudi 等数据湖的使用。用户可以基于 Flink 和这些组件构建各种应用,涵盖了实时、近实时、批处理的各种场景。 最外层是具体的使用场景,常见的有电商、商业化等视频相关的业务方,应用场景包含机器学习、多维分析等。另外还有很多技术部门基于 Flink 来实现数据的导入、转换,比如 CDC、湖仓一体等。
02
容错能力提升
首先是单点恢复,支持任意多个 task 失败时的原地重启,long-running 作业基本可以做到永不断流; 其次,是集群故障的应对,包含冷备、热备以及 Kafka 双集群的集成;最后是黑名单的使用。
03
Flink 引擎控制与实践
3.1 Flink实时控制
3.2 源端控制能力
3.3 作业均衡调度
04
快手批处理实践
指标计算,比如实时指标和报表计算。 数据回溯,利用已有的离线数据重新生成其他指标。 数仓加速,主要是数据仓库和数据湖的实时加速。
05
未来规划
首先是实时计算,进一步增强 Flink 的性能、稳定性和应用性,并通过实时计算来加速各种业务场景。 第二个是在线和离线的统一,包含实时、近实时和批处理。我们期待能用 Flink 统一快手的数据同步、转换和在离线计算,让ETL、数仓、数据湖处理等各类场景,都使用一套 Flink 计算系统。 最后一个是弹性可伸缩,主要是云原生相关,包含在离线混部和作业的弹性伸缩等。
往期精选