关于后端:会议总结-首次-Flink-Batch-社区开发者会议

37次阅读

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

2023 年 2 月 8 日,咱们组织了首场 Flink Batch 社区开发者会议。尽管是第一次举办社区会议,有诸多准备不周的中央,但会议当天依然十分炽热,参加的听众有 100 多人,能够比较一场 Meetup,让咱们感触到了用户对 Flink Batch 的期待和关注。残缺的会议视频和会议材料能够点击 「浏览原文」 查看。之后咱们也会定期组织社区会议,下一场会议将于 2 月 22 日举办(见文末),欢送大家参加和提交议题。

Flink Batch 社区开发者会议旨在推广 Flink Batch 技术,解决用户遇到的问题和需要,建设社区用户和开发者的定期交流平台,并帮忙用户和开发者理解 Flink Batch 和流批一体的倒退方向和开发动静,分享生产落地教训,并协调开发奉献工作。

社区会议回顾总结

本次开发者会议邀请到了 Apache Flink 多位外围 PMC/Committer,以及来自快手、Shopee、字节跳动、蚂蚁金服等一线技术专家们,与开发者们分享 Flink Batch 最新的停顿和落地的实践经验。

Flink 1.17 Batch 最新进展介绍

来自阿里巴巴的 Apache Flink PMC member 贺小令老师,分享了行将公布的 Flink 1.17 版本 Batch 相干的最新性能停顿。次要包含了:

  • Adaptive Batch Scheduler:改良了分区生产算法,解决了分区大小不平均导致上游解决数据不平均。并成为 Batch 模式下默认的 Scheduler。
  • Speculative Execution:针对 Sink 反对了 Speculative Execution,并依据 Task 解决的数据量及执行工夫改良了慢工作检测算法,排除数据歪斜的影响。
  • Hybrid Shuffle:优化了 Broadcast 性能,并能与 Adaptive Batch Scheduler 和 Speculative Execution 一起工作。
  • 新 Join Reorder 算法:引入 DPSize 算法生成浓密树。依据 Query 中 Join 个数,主动抉择浓密树算法还是左深树算法。
  • Dynamic Partition Pruning:更多的场景能应用 DPP 优化。
  • Adaptive Local Hash Aggregate:运行时动静依据 Local Agg 的聚合度,决定是否持续做 Local Hash Agg 还是改做简略的 Projection。
  • Hive Sink:在批模式下,反对小文件合并,对齐 Hive 合并行为。
  • Hive SQL:Hive 语法模式下,原生反对 Hive 罕用的聚合函数,TPC-DS 性能晋升一倍。
  • SQL Client/Gateway:SQL Client 能直连到近程 SQL Gateway,不便用户做交互式查问剖析。
  • UPDATE/DELETE 语法:反对了规范的数据修改语法 UPDATE 和 DELETE,以及对应的 Connector API,不便数据湖的对接。

咱们也针对以后的 Flink 1.17 版本与 Flink 1.16 做了 TPC-DS 的性能比照,在 10TB 级别的分区表场景,1.17 性能比 1.16 晋升了 25%。在正式发版之后,咱们也会分享更具体的测试细节和性能比照数据。

Flink 1.17 版本目前正在发版测试阶段,预计 3 月份公布,欢送感兴趣的用户试用和反馈。

快手的 Flink Batch 实践经验

来自快手的技术专家、Apache Flink & Apache Calcite Committer 张静老师,分享了快手外部 Flink Batch 的实践经验。在快手外部,目前 Flink Batch 上的作业曾经有 3000 多个了,次要有几个场景:

第一个是数据同步场景。以前老的架构,离线同步基于 MR 和 DataX,实时是基于 MR 和自研框架。这个架构的毛病是计算能力弱,扩展性不强。所以数据同步团队基于 Flink 来打造新的版本,心愿用 Flink 计算能力和可扩展性来加强数据同步这个产品。

第二个是机器学习场景。机器学习始终是快手外部 Flink Streaming 的重点业务方,他们用 Flink 做实时特色计算和实时样本拼接。他们心愿可能用 Flink Batch 复用一套业务逻辑,来满足回溯的需要,做数据修改和冷启动生成历史数据。而且用一个引擎也能够防止后果不统一的问题。

第三个是数据湖场景,之前大部分 Hudi 作业是用 Spark 来做,今年春节流动的时候,曾经有局部的 Hudi 作业切到了 Flink 上,包含流和批都有波及。

最初一个是 Hive/Spark 的工作迁徙到 Flink。其实这个工作次要用来推演哪些场景比拟适宜用 Flink Batch,以及验证 Flink Batch 的稳定性。对于迁徙的用户来说,稳定性是根本条件,性能的话须要持平或者差距不大。目前验证了在简略的 ETL 场景下,Flink Batch 的稳定性、易用性、性能、Hive 语法兼容方面都是达到生产可用的程度的。对于具体做了哪些工作,感兴趣的能够参考 Flink Forward Asia 2022 上的分享《流批一体架构在快手的实际和思考》。

之后,张静老师还分享了一些在生产上线过程中遇到的问题,以及解决思路和优化计划。感兴趣的能够观看残缺的会议视频理解更多。

蚂蚁金服的流批一体落地实际

来自蚂蚁金服的技术专家闵文俊老师,分享了流批一体在蚂蚁金服的落地实际。蚂蚁是从 2022 年开始引入社区 1.15 版本,在其上构建蚂蚁的流批处理引擎,去年基本上落地实现。在最近的 2023 年五福业务中曾经笼罩了局部场景。往年会开始对之前的 Blink(流批)引擎降级以及承接一些新的批 / 流批业务场景、大促场景,并通过流批一体的能力来对数据开发提效。

Mix 表模型

流批一体的开发状态

从用户入口上,用户只须要开发主体的 DML 逻辑,面向流表(Schema)开发。实时表和离线表对齐过程,不要求两张表的字段齐全对应,会在生成的流和批工作的 SQL 最开始处,依据用户所指定的字段映射关系,插入一段视图来实现字段名不同的问题。流批源表会插入 “__source_type__” 字段并别离注入成 ‘bounded’ 和 ‘unbounded’,容许用户在代码中能够通过条件判断实现一些流批的定制逻辑、字段填充、分支逻辑等。

蚂蚁的流批一体引擎也应用到了社区的一些新性能,比方 Adaptive Batch Scheduler + Source 算子的并发推断根本实现批工作并发和资源无需配置。另外还应用了社区的 Flink Remote Shuffle Service,并在 k8s 集群上基于 stateful set + pvc 模式部署,更加云原生一些。最初还用了 HistoryServer 来查看历史批作业的执行状况。蚂蚁外部也做了一些性能优化项,比方子图复用优化、常量折叠优化、union-exchange transpose 优化、流批一体中的维表关联等。

最初,闵文俊老师还分享了一些在生产上线过程中遇到的问题和明天的工作方向。感兴趣的能够观看残缺的会议视频理解更多。

Flink Batch 在 Shopee 的利用和实际

来自 Shopee 的技术专家李明昆老师,分享了 Shopee 外部 Flink Batch 的实践经验。Shopee 次要是从去年开始应用 Flink Batch 的,应用的场景次要有几个。一个是数据集成和 ETL 平台。另一个是特色生成平台,特色生成是 Flink Batch 的次要应用方,次要场景是将 Hive 数据通过离线解决后写入 HBase,之前是应用的 Spark,当初迁徙到 Flink 了。还有就是数仓畛域,咱们主推的是 Flink + Hudi,去做 Hudi 的离线 compaction。最初应用 Flink 批作业配合 Flink 实时流作业,比方应用 Batch 工作做冷启动,数据的修改,以及 backfill 等。

李老师也收集了一些用户应用 Flink Batch 的反馈,分享了应用过程中的一些问题,包含:配置的开箱即用,文档中流批模式的行为区别,Hive Partition 过多导致的编译耗时和 GC 问题,HistoryServer 的稳定性问题等等。其中有一些社区曾经解决了,有些还需持续欠缺。

总结 Shopee 这一年的工作,次要就是将 Flink Batch 落地应用起来了。一方面建设了平台将 Flink Batch 工作都治理起来。另一方面,引擎侧进步了工作稳定性。因为当初迁过来的用户,并不是那么关怀性能,稳定性是第一位。次要是将 Remote Shuffle Service 搭建了起来,来进步工作的稳定性。

字节跳动的 Flink Batch 实践经验

来自字节跳动的技术专家、Apache Flink & Apache Calcite Committer 李本超老师,分享了字节跳动外部 Flink Batch 的实践经验。字节跳动外部次要有四种 Flink Batch 的应用场景。

第一类是流批一体的场景,这个场景咱们定义批是流的一个补充或校验。流批一体场景的作业曾经上线比拟久了,当初线上有大略有 4000 多个工作,然而其中有大略 300 个以上是惯例调度运行,其余的都是一次性或者手工去触发执行。

第二个场景是数据同步场景。非 SQL 场景都是用的 Flink Batch 做的数据同步。SQL 场景次要分为两类,一类是单纯的表同步,比如说从 Hive 表同步的某 KV 零碎。像这种工作大略有 1 万多个,目前全副迁徙到了 Flink Batch 上。另一类是在迁徙两头会有一个简单的 SQL 加工,也就是 ETL 工作,整体是有 3 万多个,目前曾经实现了 2000 多任务的迁徙。这个场景里次要面临的问题是目前的 Hive SQL 兼容无奈反对某些 Spark 语法的兼容,这是目前正在致力解决的一个问题。在稳定性方面,因为有揣测执行、单点 Failover、Shuffle Servcie、黑名单等性能,所以工作的稳定性整体还不错。

第三个场景是特色计算场景。这个场景的特点是数据量会比拟大,工作数量绝对来讲不会特地多。目前大略有 200 多个工作,比拟大的单个工作可能会有上百 T 左右的数据处理,这块字节外部也针对大规模数据处理工作的性能优化。

第四个场景是 OLAP 场景。字节跳动在 FFA 2022 上也有几个演讲分享了 Flink 在 OLAP 方向上的改良。字节跳动在自建的 ByteHTAP 零碎外面,用的就是 Flink Batch 的能力去做的 OLAP 查问。以后能够做到单集群的 200QPS 以上的吞吐。这个场景个别都是应用的 pipeline 模式。绝对来讲 Query 的数据量不会超大,然而对 QPS 和响应提早要求比拟高。这里边咱们做了很多 SQL 的优化,包含像 AGG 的下推、CodeGen Cache、Runtime Filter 等等。

邀请 | 第二场 Flink Batch 社区开发者会议

为了进一步促成社区与用户的交换,让更多的开发者参加到 Flink Batch 的建设中来,咱们将于 2 月 22 日组织下一场的 Flink Batch 社区开发者会议,将重点探讨 Flink Batch Roadmap 以及下个版本的工作重点,欢送大家在 Roadmap 文档中增加您认为重要的性能需要,欢送届时踊跃探讨,也欢送提交其余探讨议题。

会议工夫

2 月 22 日(周三)早晨 19:00 到 20:00。

日程邀请

退出 https://groups.google.com/g/f… Google 群组获取日程邀请。

会议议题

  • Flink Batch Roadmap 探讨
  • (欢送提交其余探讨议题)

参会形式

本次会议采纳 AliMeeting,点击链接即可入会,无需装置软件:https://s.apache.org/flink-sync

欢送所有社区开发者和用户退出,一起分享探讨,一起打造一款世界级的流批一体计算引擎!


更多 Flink Batch 相干技术问题,可扫码退出社区钉钉交换群~

点击查看会议视频和会议材料

更多内容


流动举荐

阿里云基于 Apache Flink 构建的企业级产品 - 实时计算 Flink 版现开启流动:
99 元试用 实时计算 Flink 版(包年包月、10CU)即有机会取得 Flink 独家定制卫衣;另包 3 个月及以上还有 85 折优惠!
理解流动详情:https://www.aliyun.com/produc…

正文完
 0