投入上百人、经历多次双 11,Flink 已经足够强大了吗?
采访嘉宾|王峰(莫问)
作者 | Tina
作为最活跃的大数据项目之一,Flink 进入 Apache 软件基金会顶级项目已经有八年了。
Apache Flink 是一款实时大数据分析引擎,同时支持流批执行模式,并与 Hadoop 生态可以无缝对接。2014 年,它被接纳为 Apache 孵化器项目,仅仅几个月后,它就成为了 Apache 的顶级项目。
对于 Flink 来说,阿里有非常适合的流式场景。作为 Flink 的主导力量,阿里从 2015 年开始调研 Flink,并于 2016 年第一次在搜索场景中上线 Flink。在落地的同时,阿里对 Flink 进行大量的修改和完善,让其适应超大规模业务场景。2017 年,阿里已成为 Flink 社区最大规模用户,Flink 团队也达上百人。这其中的一些早期改进,阿里在 2018 年的文章《Flink 已经足够强大了吗?阿里巴巴说:还不够》中已有详尽解读。
2019 年,阿里宣布收购了 Flink 背后的企业,并正式开源内部 Flink 版本 Blink,贡献了超百万行代码,极大地推动了社区的良性发展。在 2021 年双 11 中,Flink 承载的实时计算峰值达到了每秒 40 亿条记录,数据体量也达到 7 TB 每秒,相当于一秒钟需要读完 500 万本《新华字典》。
这几年,Flink 社区在国内外技术会议上不断宣传推广,让 Flink 得到大量采用,各种应用场景也变得更加广泛,生态快速发展。Flink 已经变得强大,其设计目标也不再仅仅是流计算引擎,而是让绝大部分数据分析师都可以利用 Flink 流批一体 API 搭建实时数据集成、分析、风控和在线机器学习场景解决方案。
2022 年 11 月 26-27 日,Flink Forward Asia 2022 于线上召开,这是一次总结最近发布的重要功能的机会。这一次,Flink 流式数仓功能更加成熟,CDC 也能够接入多种数据库......InfoQ 趁此机会,采访了 Apache Flink 中文社区发起人、阿里巴巴开源大数据平台负责人王峰(花名莫问),解读 Flink 核心技术的进展,并了解 Flink 的未来规划。
从流计算到流批一体计算
打败 Storm 和 Spark Streaming 之后,Flink 成为了流计算的唯一标准,技术上已经没有了竞争对手。
流式数仓:基于流批一体的新数仓架构
流批一体是一个技术理念。
基于 Flink 的全增量一体化数据集成
随着实时化数据分析技术的普及,用户的数据同步需求也在进一步升级,期望能够使用一套一体化的全量数据同步工具,一键实现数据同步。但在传统数据集成技术体系下,全量和实时数据同步往往需要两套工具(基于批和流的),并且用户需要在两套工具之间进行协同,因此要真正实现全增量同步流程的无缝对接并保证数据一致性,这个难度和挑战是非常大的。但如果能够利用上 Flink 流批一体融合特性,那实现全增量一体化的实时数据集成就变得可行了。
这就是 Flink CDC 项目诞生的背景,其大量借助了 Flink 自身的优势,利用流批一体执行模式实现了全增量同步自动切换,基于 Flink Checkpointing 能力实现了数据同步断点续传特性,并基于增量快照一致性读取算法保证了数据同步全程对在线数据库无锁操作,这样对生产业务不会产生任何影响。
作为流批一体的另一个创新应用场景,CDC 项目发展速度也非常快,网易、腾讯、Oceanbase、哔哩哔哩、Xtransfer 等公司都参与了社区贡献,GitHub Star 目前已经突破 3000,生态上支持了很多主流数据库,包括 MySQL、Oracle、PostgreSQL、MongoDB、TiDB、PolarDB 和 OceanBase 等。莫问表示,Flink CDC 会进一步利用 Flink 社区的创新成果,接入更多的数据源,成为新一代全增量一体化的数据集成引擎。
云原生时代的 Flink
随着云原生的普及,越来越多的企业应用进行了容器化迁移,并通过 K8s 进行编排管理。最近几年,大数据领域的 Spark、Kafka 等都开始支持 K8s,使得大数据应用从传统的 Yarn 时代转变为云原生时代。
Flink 社区很早以前就开始基于云原生来设计了,包括 Flink 的资源调度、流式 Shuffle,都是天然适合云原生的。Flink 作为一个流式计算引擎,数据的 Shuffle 不需要落盘,都是流式的进行数据传输,分布式计算之间数据的流动都是通过网络加内存,不依赖本地盘,因此天然就是存算分离的架构。另外,Flink 自带了一个状态存储,计算的算子和状态访问是一体的,在算子内部就支持状态访问,这个其实也在朝着存算分离方向去演进,也就是说 Flink 随时可以关掉 RocksDB 服务,把状态数据 SnapShot 到持久化的 HDFS 或者是云存储上。
Flink 作为云原生架构下的产物,本身也一直朝着云原生架构去设计,社区在五六年前就开始做 Flink on K8s。支持 K8s 之后,对 Flink 有很大的帮助,比如部署不依赖 Hadoop 了:只要有 K8s,就可以部署 Flink,也没有任何依赖。运维方案也非常标准化,K8s 的运维体系也会运维 Flink。同时,Flink 也可以基于容器来进行部署,容器给 Flink 带来了更好的隔离性,包括任务之间的隔离、多租户的管理,甚至下一步做 Serverless,也会更加自然和容易。
在云原生的发展趋势下,自适应性非常重要。更好的资源弹性让业务的波动也变得更加灵活,而云上的资源也是海量的,用户可以根据业务的需求不断弹性调资源规模。特别是 Serverless 的环境下,用户甚至不需要去考虑机器资源了。Flink 自身也会去增加更多的自适应的能力,实现自动化的任务并发管理和状态数据管理,从而让 Flink 能更好地使用云上的弹性机制。
Apache Flink 正在蓬勃发展,并在广大的大数据分析生态中变得不可或缺,逐渐成为了企业数据战略的关键支柱。但对于一些传统企业来说,如果没有很强大的大数据技术团队,用开源软件自建一个数据分析平台还是比较困难的。所以提供产品化服务,降低技术门槛,也是阿里云 Flink 技术团队正在做的事情。
阿里云已经推出了一款云原生的实时计算 Flink 产品,提供了以 Flink SQL 为核心的开发运维平台,将阿里内部积累的 Flink 生产运维经验和企业级能力都通过产品化的形式开放给广大中小企业,提供实时数仓、实时数据集成、实时风控和实时特征工程等解决方案,帮助数字化企业加速大数据技术实时化升级。
另外,阿里云提供的 Flink 产品也采用了最先进的 Serverless 架构,用户只要按需购买计算资源就可以运行方便使用 Flink,让实时计算更加普惠。莫问表示,未来几个月之内,基于 Flink 的多云 PaaS Serverless 服务也将在全球范围公测,作为推动 Flink 社区不断技术创新的核心研发团队,阿里云希望把 Flink 技术生态进一步推向全球。
王峰,花名“莫问”,阿里巴巴研究员,2006 年北航毕业加入阿里巴巴,目前负责阿里云开源大数据平台,并担任阿里巴巴开源委员会大数据与 AI 方向副主席。2015 年开始将萌芽状态的 Apache Flink 引入中国,基于 Flink 推动阿里大数据进入全链路实时化时代,并以此为标杆效应带动了 Flink 在全球各个行业的快速普及和发展,让 Flink 成为了大数据实时计算领域的事实标准。阿里积极拥抱开源,也主动贡献开源。迄今,阿里已累计对外开源了上百个优秀项目,在 GitHub 上 Star 总数超百万。
Flink Forward Asia 2022
Flink Forward 是由 Apache 官方授权的 Apache Flink 社区官方技术大会,通过参会不仅可以了解到 Flink 社区的最新动态和发展计划,还可以了解到国内外一线厂商围绕 Flink 生态的生产实践经验,是 Flink 开发者和使用者不可错过的盛会。本届 Flink Forward Asia 正在直播,可点击阅读原文或扫描图片二维码观看!
PC 端直播入口
建议前往 FFA 2022 大会官网预约直播
https://flink-forward.org.cn/
▼ 关注「Apache Flink」,获取更多技术干货 ▼