关于flink:40亿条秒Flink流批一体在阿里双11首次落地的背后

0次阅读

共计 5960 个字符,预计需要花费 15 分钟才能阅读完成。

作者:王峰(莫问)

导读:往年的双 11,实时计算解决的流量洪峰创纪录地达到了每秒 40 亿条的记录,数据体量也达到了惊人的每秒 7TB,基于 Flink 的流批一体数据利用开始在阿里巴巴最外围的数据业务场景锋芒毕露,并在稳定性、性能和效率方面都禁受住了严苛的生产考验。本文深度解析“流批一体”在阿里外围数据场景首次落地的实践经验,回顾“流批一体”大数据处理技术的倒退历程。

随着 11 月 11 日 12 点钟声的敲响,2020 年双 11 的 GMV 数字定格在了 4982 亿,在 Flink 实时计算技术的驱动下全程放弃了丝般顺滑滚动,基于 Flink 的阿里巴巴实时计算平台也圆满完成了往年双 11 整体经济体的实时数据工作保障,再次安稳度过全年大考。

除了 GMV 媒体大屏之外,Flink 还反对了诸如搜寻举荐实时机器学习,广告实时反作弊,菜鸟订单状态实时跟踪反馈,云服务器的实时攻打探测以及大量基础设施的监控报警等等重要业务。实时业务量和数据量每年都在大幅增长,往年的实时计算峰值达到了创纪录的每秒 40 亿条记录,数据体量也达到了惊人的 7 TB 每秒,相当于一秒钟须要读完 500 万本《新华字典》。

截止目前,咱们的实时计算作业数达到了 35000 多个,集群总计算规模也达到了超过 150 万核,在中国乃至世界范畴内都处于领先水平。至此,Flink 曾经反对了阿里经济体所有的实时计算需要,实现了全链路数据实时化,第一工夫为消费者、商家以及经营人员带来了数据的价值。

但往年 Flink 技术演进带来的价值不仅于此,基于 Flink 的流批一体数据利用也开始在阿里巴巴最外围的数据业务场景锋芒毕露,并在稳定性、性能和效率方面都禁受住了严苛的生产考验。

“流批一体”在阿里外围数据场景首次落地

事实上,Flink 流批一体技术很早就在阿里巴巴外部开始利用了。Flink 在阿里的倒退始于搜寻举荐场景,因而搜索引擎的索引构建以及机器学习的特色工程都曾经是基于 Flink 的 批流一体架构。往年双 11,Flink 更进一步,利用流批一体计算能力,助力数据中台实现更加精准的实时离线穿插数据分析和业务决策。

阿里的数据报表分为实时和离线两种,前者在诸如双 11 大促场景下的作用尤为显著,能够为商家、经营以及管理层提供各种维度的实时数据信息,并帮忙其及时作出决策,晋升平台和业务效率。例如:在典型的营销数据实时剖析场景,经营和决策层须要比照大促当天某个时间段和历史某个时间段的数据后果(比方大促当天 10 点的成交额和昨天 10 点成交额的比照),从而判断以后营销的成果,以及是否须要进行调控、如何调控等策略。

在下面这种营销数据分析场景下,实际上须要两套数据分析后果,一套是基于批处理技术在每天晚上计算出的离线数据报表,一套是基于流解决技术算出当天的实时数据报表,而后针对实时和历史数据进行比照剖析,依据比照后果进行相干决策。离线和实时报表别离是基于批和流两种不同计算引擎产出,即批和流拆散的架构不仅会有两套开发成本,更难以解决的是数据逻辑和口径对齐问题,很难保障两套技术开发出的数据统计后果是统一的。因而,现实的解决方案就是利用一套流批一体的计算引擎进行数据分析,这样离线和实时报表将人造统一。鉴于 Flink 流批一体计算技术的一直成熟,以及后期在搜寻举荐场景的胜利落地,往年双 11 数据平台开发团队也展现出动摇的信念和信赖,与 Flink 实时计算团队并肩作战,独特推动实时计算平台技术升级,第一次让基于 Flink 的流批一体数据处理技术在双 11 最外围的数据场景顺利落地。

往年由 Flink 团队和数据平台团队独特推动的流批一体计算框架在双 11 数据外围场景胜利首秀,也失去了阿里数据中台负责人朋新宇在业务层的认可:流批一体在技术上,实现了哪怕是多个计算解决模式,也只须要撰写一套代码就能兼容。在计算速度上比其余框架快 1 倍、查问快 4 倍,给小二们搭建数据报表晋升了 4 -10 倍的速度。同时,因为 ” 一体化 ” 的个性,能实现实时与离线数据的完全一致。

除了在业务开发效率和计算性能上的提高,流批一体计算架构也让集群资源利用率失去大幅晋升。阿里的 Flink 实时集群通过最近几年的高速扩大,曾经达到了百万核 CPU 的计算规模,下面运行着数万个 Flink 实时计算工作。白天是实时数据业务的高峰期,早晨业务低峰期计算资源呈现闲暇,正好能够为离线批工作提供收费的计算资源。批和流一套引擎,运行在一套资源底座上,人造的削峰填谷,天然的混布,不仅节俭了开发成本,同时也大幅节俭了运维老本和资源老本。往年双 11,基于 Flink 的流批一体数据业务,没有额定申请任何资源,批模式全副复用 Flink 实时计算集群,集群利用率大幅晋升,为业务方节俭了大量的资源开销,高效的资源模式也为后续更多业务翻新提供了瘠田。

“流批一体”,Flink 十年磨一剑

接下来让咱们从技术角度聊一下“流批一体”大数据处理技术的倒退历程。这要从开源大数据技术的鼻祖 Hadoop 开始谈起,10 多年前 Hadoop 作为第一代开源大数据技术呈现,MapReduce 作为第一代批处理技术解决了大规模数据处理问题,Hive 的呈现更是让用户能够用 SQL 的形式进行大规模数据的计算。但随着大数据业务场景的逐渐倒退,很多利用都对数据实时化产生了越来越强烈的需要,例如:社交媒体,电商交易,金融风控等行业。在这个需要背景下,Storm 作为第一代大数据流解决技术应运而生,Storm 在架构上和 Hadoop / Hive 齐全不同,它是齐全基于音讯的流式计算模型,能够在毫秒级提早状况下并发解决海量数据,因而 Storm 补救了 Hadoop MapReduce 和 Hive 在时效性上的有余。就这样大数据计算在批和流两个方向都有了各自不同的支流引擎,并呈现出若明若暗的格局,大数据处理技术经验完了第一个时代。

随后大数据处理技术来到了第二个时代,Spark 和 Flink 两款计算引擎在新时代陆续退场。Spark 绝对于 Hadoop 和 Hive,具备更加欠缺的批处理表达能力和更加优良的性能,这让 Spark 社区迅速倒退,并逐渐超过了 老牌的 Hadoop 和 Hive,成为批处理技术畛域的支流技术。但 Spark 并未止步于批处理技术,很快 Spark 也推出了流计算解决方案,即 Spark Streaming,并一直进行改良欠缺。但大家都晓得 Spark 的外围引擎是面向“批处理”概念的,不是一款纯流式计算引擎,在时效性等问题上无奈提供极致的流批一体体验。但 Spark 基于一套外围引擎技术,同时实现流和批两种计算语义的理念是十分先进的,与其具备雷同流批一体理念的还有另一款新引擎 Flink。Flink 正式亮相比 Spark 略微晚一些,但其前身是来自德国柏林工业大学 2009 年的钻研我的项目 Stratosphere,至今也有 10 年之久。Flink 的理念和指标也是利用一套计算引擎同时反对流和批两种计算模式,但它和 Spark 相比抉择了不同的实现路线。Flink 抉择了面向“流解决”的引擎架构,并认为“批”其实是一种“无限流”,基于流为外围的引擎实现流批一体更加天然,并且不会有架构瓶颈,咱们能够认为 Flink 抉择了”batch on streaming“的架构,不同于 Spark 抉择的“streaming on batch”架构。

Flink 实现欠缺的流批一体架构也不是欲速不达的,在晚期的 Flink 版本中,Flink 的流和批无论在 API 还是在 Runtime 上都还没有达到彻底的对立。但从 1.9 版本开始,Flink 开始减速在流批一体上进行欠缺和降级,Flink SQL 作为用户应用的最支流 API,率先实现了流批一体语义,使得用户只需学习应用一套 SQL 就能够进行流批一体的开发,大幅节俭开发成本。

然而 SQL 并不能解决用户的所有需要。一些定制化程度较高,比方须要精细化的操纵状态存储的作业还是须要持续应用 DataStream API。在常见的业务场景中,用户写了一份流计算作业后,个别还会再筹备一个离线作业进行历史数据的批量回刷。然而 DataStream 尽管能很好的解决流计算场景的各种需要,但却不足对批处理的高效反对。

因而,Flink 社区在实现 SQL 流批一体降级之后,从 1.11 版本也开始投入大量精力对 DataStream 进行流批一体能力的欠缺,在 DataSteam API 上减少批处理的语义,同时联合流批一体 Connector 的设计,让 DataStream API 可能在流批交融场景下对接 Kafka 和 HDFS 等不同类型流批数据源。接下来流批一体的迭代计算 API 也将被引入到 DataStream 中,进一步解锁一系列机器学习的场景。

在以后 Flink 主版本中,不论是 SQL 还是 DataStream API,在流批一体概念上都还是流计算和批计算性能的一个结合体。用户编写的代码,须要抉择应用流的形式跑,还是批的形式跑。但有些业务场景曾经提出更高的要求,即流批混合的需要,并且主动的在批和流之间主动切换,例如:数据集成以及数据入湖场景,用户的需要是先把数据库的全量数据同步到 HDFS 或者云存储上,而后再主动实时同步 DB 中的增量数据下来,并在同步过程中进行 流批混合的 ETL 数据处理,Flink 也将在后续持续反对更加智能的流批交融场景。

Flink“流批一体”技术在阿里巴巴的倒退历程

阿里巴巴是国内最早抉择 Flink 开源技术的公司,在 2015 年我所在的搜寻举荐团队心愿面向未来 5 -10 年的倒退,抉择一款新的大数据计算引擎,用来解决搜寻举荐后盾海量商品和用户数据,因为电商行业对时效性具备十分高的诉求,因而咱们心愿新的计算引擎既有大规模批处理能力,也具备毫秒级实时处理能力,即一款流批对立的引擎,过后 Spark 的生态曾经走向成熟,并且通过 Spark Streaming 提供了流批一体的计算能力,而 Flink 过后刚刚在前一年成为 Apache 顶级我的项目,还是一个冉冉升起的新星我的项目,过后团队外部针对 Spark 和 Flink 通过了一段时间的调研和探讨,统一认为尽管 Flink 过后生态并不成熟,但其基于流解决为外围的架构对于流批一体的反对更加适合,因而十分迅速的做出决定,在阿里外部基于开源 Flink 进行欠缺和优化,搭建搜寻举荐的实时计算平台。

通过团队一年的致力,基于 Flink 的搜寻举荐实时计算平台胜利的反对了 2016 年的搜寻双 11,保障了搜寻举荐全链路实时化。通过在阿里最外围业务场景的落地证实,也让全团体都意识了 Flink 实时计算引擎,并决定将全团体实时数据业务都将迁徙到 Flink 实时计算平台上。又通过一年的致力,Flink 在 2017 年双 11 不负众望,十分顺利的反对了全团体双 11 的实时数据业务,包含 GMV 大屏等最外围的数据业务场景。

2018 年 Flink 开始走向云端,阿里云上推出了基于 Flink 的实时计算产品,旨在为宽广中小企业提供云计算服务。叶落归根,阿里巴巴不仅心愿利用 Flink 技术解决本人业务的问题,同样也心愿可能推动 Flink 开源社区更快的倒退,为开源技术社区做出更多奉献,因而阿里巴巴在 2019 年初收买了 Flink 开创公司和团队 Ververica,开始投入更多资源在 Flink 生态和社区上。到了 2020 年,国内外支流科技公司简直都曾经抉择了 Flink 作为其实时计算解决方案,咱们看到 Flink 曾经成为大数据业界实时计算的事实标准。

接下来,Flink 社区不会进行技术创新,在阿里巴巴业务场景中流批一体技术曾经从实践走向落地。2020 年的双 11,Flink 流批一体技术在天猫营销决策外围零碎中给出了精彩的体现,加上之前曾经在搜寻举荐中胜利运行的流批一体索引构建以及机器学习流程,充沛验证了 5 年前咱们大胆抉择 Flink 技术体系的正确性,置信将来咱们将会在更多公司看到 Flink 流批一体技术的落地。

“流批一体”技术创新,推动 Flink 开源社区蓬勃发展

Flink 保持流批一体技术创新之路,也天然推动 Flink 开源社区的高速倒退和生态的减速凋敝。咱们欣慰的看到,随着 Flink 在国内更多公司的减速落地,来自中文社区力量日益宏大,曾经开始逐步超过国外成为支流。

首先最显著的是用户数量的增多,从往年 6 月份起,Flink 中文邮件列表的活跃度开始超过英文邮件列表。随着大量的用户涌入 Flink 社区,也带来了更多的优良代码贡献者,无效的促成了 Flink 引擎的开发迭代。

自 1.8.0 版本以来,Flink 每个版本的 Contributor 数量都在晋升,其中大多数都是来自国内的各大企业。毫无疑问,来自国内的开发者和用户群体,曾经逐步成为推动 Flink 向前倒退的中坚力量。

中文社区的一直壮大,使得 Flink 整体的活跃度和 2019 年相比有增无减。在 Apache 软件基金会 2020 财年的报告中,Flink 蝉联了年度最沉闷我的项目(通过 user+dev 邮件列表活跃度)。与此同时,在代码 Commit 次数和 Github 主页流量这两项指标上,Flink 均排名第二。能在 Apache 软件基金会靠近 350 个 顶级我的项目中获得如此问题,着实不易。

Flink Forward Asia 2020,“流批一体”技术揭秘

Flink Forward 是由 Apache 官网受权的 Flink 技术大会,往年 Flink Forward Asia (简称:FFA) 大会全程采纳在线直播的形式,收费为宽广开发者提供一场开源大数据技术盛宴,足不出户能够在线观看来自 阿里巴巴、蚂蚁科技、腾讯、字节跳动、美团、小米、快手、B 站、网易、微博、Intel、DellEMC、Linkedin 等国内外一线互联网公司针对 Flink 的技术实际分享和技术创新。

流批一体也将是本届 FFA 大会的热门话题,来自天猫数据技术负责人将会给大家分享 Flink 流批一体技术在阿里的实际和落地,让大家看到流批一体技术是如何在双 11 最外围的场景中施展业务价值;来自阿里巴巴、字节跳动的 Flink PMC 和 Committer 技术专家将围绕 Flink 流批一体 SQL 和 Runtime 进行深度技术解读,为大家带来 Flink 社区的最新技术停顿;来自腾讯的游戏技术专家将为大家带来 Flink 在国民游戏王者光荣中的利用实际;来自美团的实时大数据负责人将为大家介绍 Flink 如何助力生存服务场景实时化;来自快手大数据负责人将为大家带来 Flink 在快手的前世今生倒退历程;来自微博的机器学习技术专家将为大家带来如何利用 Flink 进行信息举荐。此外,Flink 相干的议题还涵盖了金融、银行、物流、汽车制作、出行等各行各业,呈现出百花齐放的凋敝生态现象。欢送对开源大数据技术有激情的开发者能加入本届 Flink Forward Asia 技术大会,理解更多 Flink 社区最新技术倒退和翻新。

大会官网:http://flink-forward.org.cn

正文完
 0