带你读《企业级云原生白皮书项目实战》——5.3.3 任务性能(4)

简介: 带你读《企业级云原生白皮书项目实战》——5.3.3 任务性能(4)

《企业级云原生白皮书项目实战》——第五章 大数据——5.3 实时计算Flink版——5.3.3 任务性能(3) https://developer.aliyun.com/article/1228337


5.3.3.2.2 排查优化方案

数据倾斜是flflink任务中大家都会遇到的高频问题,一旦发生数据倾斜会带来哪些影响呢。

(1)单点问题

数据集中在某些分区上(Subtask),导致数据严重不平衡,单点资源处理耗时长。

(2)GC 频繁

过多的数据集中在某些 JVM(TaskManager),使得JVM 的内存资源短缺,导致频繁 GC情况。

(3)吞吐下降、延迟增大

数据单点和频繁 GC 导致吞吐下降上游消费慢,下游写入慢、任务整体延迟增大。

(4)系统崩溃

严重情况下,过长的 GC 导致 TaskManager 失联,任务异常终止。面对这种常见的flflink任务数据倾斜情况,一般有如下的定位排查方案。首先根据flflink任务清理在确定是否存在数据倾斜情况:

(1)根据flflink监控查看任务反压

Flink Web UI 自带的反压监控(直接方式)来确定任务出现反压,然后通过监控反压的信息,可以获取到数据处理瓶颈的 Subtask。

(2)查看对应Subtasks,多并发情况下,当 Subtasks 之间处理的数据量有较

大的差距,则该 Subtask 出现数据倾斜。如下图所示,红框内的 Subtask 出现数据热点。

image.png


对于出现数据清晰的flflink任务如何进行排查呢?常见的有付下的一些场景:

(1)数据源 source 消费不均匀

解决思路:通过调整并发度,解决数据源消费不均匀或者数据源反压的情况。例如kafka数据源,可以调整 KafkaSource 的并发度解决消费不均匀。调整并发度的原则:KafkaSource 并发度与 kafka 分区数是一样的,或者 kafka 分区数是KafkaSource 并发度的整数倍。

(2)key 分布不均匀的无统计场景

问题说明:key分布不均匀的无统计场景,例如上游数据分布不均匀,使用keyBy来打散数据。

解决思路:通过添加随机前缀,打散 key 的分布,使得数据不会集中在几个 Subtask。

(3)GroupBy + Aggregation 分组聚合热点问题

业务上通过 GroupBy 进行分组,然后紧跟一个 SUM、COUNT 等聚合操作是非常常见的。我们都知道 GroupBy 函数会根据 Key 进行分组,完全依赖 Key 的设计,如果 Key 出现热点,那么会导致巨大的 shufflfflffle,相同 key 的数据会被发往同一个处理节点;如果某个 key 的数据量过大则会直接导致该节点成为计算瓶颈,引起反压。

5.3.3.2.3 典型案例

flflink实时任务使用了窗口函数,但是发现下游的数据一直没有计算输出的异常。

根据上游kafka的监控查看,可以看到数据有严重的倾斜问题。如下图所示,10个分区中有三个分区数据量特别少,5号分区基本上没数据。

image.png


分析这个watermark的传递机制

当并行执行的情况下,如下图所示,每次接受的watermark发送的watermark都是最小的,木桶效应。但是,当某个分区始终无数据的时候,就不会更新该分区的watermark值,那么窗口就一直不会被触发计算。这种现象在某些hash极端导致数据倾斜很普遍。

解决方案:

把flflink任务的并行度改小,使得每个并行进程处理多个分区数据,同个并行的进程处理多分区数据就会使用最大的watermark,这里还有一点异常是来自上游kafka,从kafka的监控看数据写入kafka的分区的数据实际上就是不均衡的,如果是均衡的则一般不会出现flflink消费数据倾斜的情况,所以一般还是要保持flflink消费的上游数据源也是数据均衡的情况,也可以避免数据倾斜的发生,实际的做法就是写入的时候将数据打散,避免出现分区热点数据的情况。


《企业级云原生白皮书项目实战》——第五章 大数据——5.3 实时计算Flink版——5.3.3 任务性能(5) https://developer.aliyun.com/article/1228335

相关文章
|
2月前
|
人工智能 Cloud Native 算法
拔俗云原生 AI 临床大数据平台:赋能医学科研的开发者实践
AI临床大数据科研平台依托阿里云、腾讯云,打通医疗数据孤岛,提供从数据治理到模型落地的全链路支持。通过联邦学习、弹性算力与安全合规技术,实现跨机构协作与高效训练,助力开发者提升科研效率,推动医学AI创新落地。(238字)
|
6月前
|
资源调度 Kubernetes 流计算
Flink在B站的大规模云原生实践
本文基于哔哩哔哩资深开发工程师丁国涛在Flink Forward Asia 2024云原生专场的分享,围绕Flink On K8S的实践展开。内容涵盖五个部分:背景介绍、功能及稳定性优化、性能优化、运维优化和未来展望。文章详细分析了从YARN迁移到K8S的优势与挑战,包括资源池统一、环境一致性改进及隔离性提升,并针对镜像优化、Pod异常处理、启动速度优化等问题提出解决方案。此外,还探讨了多机房容灾、负载均衡及潮汐混部等未来发展方向,为Flink云原生化提供了全面的技术参考。
387 9
Flink在B站的大规模云原生实践
|
分布式计算 大数据 Apache
ClickHouse与大数据生态集成:Spark & Flink 实战
【10月更文挑战第26天】在当今这个数据爆炸的时代,能够高效地处理和分析海量数据成为了企业和组织提升竞争力的关键。作为一款高性能的列式数据库系统,ClickHouse 在大数据分析领域展现出了卓越的能力。然而,为了充分利用ClickHouse的优势,将其与现有的大数据处理框架(如Apache Spark和Apache Flink)进行集成变得尤为重要。本文将从我个人的角度出发,探讨如何通过这些技术的结合,实现对大规模数据的实时处理和分析。
954 2
ClickHouse与大数据生态集成:Spark & Flink 实战
|
7月前
|
资源调度 Kubernetes 调度
网易游戏 Flink 云原生实践
本文分享了网易游戏在Flink实时计算领域的资源管理与架构演进经验,从Yarn到K8s云原生,再到混合云的实践历程。文章详细解析了各阶段的技术挑战与解决方案,包括资源隔离、弹性伸缩、自动扩缩容及服务混部等关键能力的实现。通过混合云架构,网易游戏显著提升了资源利用率,降低了30%机器成本,小作业计算成本下降40%,并为未来性能优化、流批一体及智能运维奠定了基础。
447 9
网易游戏 Flink 云原生实践
|
8月前
|
SQL 运维 Java
蚂蚁 Flink 实时计算编译任务 Koupleless 架构改造
本文介绍了对Flink实时计算编译任务的Koupleless架构改造。为解决进程模型带来的响应慢、资源消耗大等问题,团队将进程模型改为线程模型,并借助Koupleless的类加载隔离能力实现版本和包的隔离。通过动态装配Plugin及其Classpath,以及Biz运行时仅对依赖Plugin可见的设计,大幅优化了编译任务的性能。结果表明,新架构使编译耗时降低50%,吞吐量提升5倍以上。
蚂蚁 Flink 实时计算编译任务 Koupleless 架构改造
|
分布式计算 监控 大数据
大数据-131 - Flink CEP 案例:检测交易活跃用户、超时未交付
大数据-131 - Flink CEP 案例:检测交易活跃用户、超时未交付
270 0
|
11月前
|
SQL 存储 大数据
Flink 基础详解:大数据处理的强大引擎
Apache Flink 是一个分布式流批一体化的开源平台,专为大规模数据处理设计。它支持实时流处理和批处理,具有高吞吐量、低延迟特性。Flink 提供统一的编程抽象,简化大数据应用开发,并在流处理方面表现卓越,广泛应用于实时监控、金融交易分析等场景。其架构包括 JobManager、TaskManager 和 Client,支持并行度、水位线、时间语义等基础属性。Flink 还提供了丰富的算子、状态管理和容错机制,如检查点和 Savepoint,确保作业的可靠性和一致性。此外,Flink 支持 SQL 查询和 CDC 功能,实现实时数据捕获与同步,广泛应用于数据仓库和实时数据分析领域。
7734 32
|
11月前
|
存储 消息中间件 OLAP
Hologres+Flink企业级实时数仓核心能力介绍-2024实时数仓Hologres线上公开课03
本次分享由阿里云产品经理骆撷冬(观秋)主讲,主题为“Hologres+Flink企业级实时数仓核心能力”,是2024实时数仓Hologres线上公开课的第三期。课程详细介绍了Hologres与Flink结合搭建的企业级实时数仓的核心能力,包括解决实时数仓分层问题、基于Flink Catalog的Streaming Warehouse实践,并通过典型客户案例展示了其应用效果。
372 10
Hologres+Flink企业级实时数仓核心能力介绍-2024实时数仓Hologres线上公开课03
zdl
|
消息中间件 运维 大数据
大数据实时计算产品的对比测评:实时计算Flink版 VS 自建Flink集群
本文介绍了实时计算Flink版与自建Flink集群的对比,涵盖部署成本、性能表现、易用性和企业级能力等方面。实时计算Flink版作为全托管服务,显著降低了运维成本,提供了强大的集成能力和弹性扩展,特别适合中小型团队和业务波动大的场景。文中还提出了改进建议,并探讨了与其他产品的联动可能性。总结指出,实时计算Flink版在简化运维、降低成本和提升易用性方面表现出色,是大数据实时计算的优选方案。
zdl
559 56
|
11月前
|
编解码 弹性计算 大数据
软硬结合助力倚天云原生算力再进化,加速大数据、视频转码上云步伐
本文介绍了云原生算力的进化,重点讨论了倚天710 CPU在大数据和视频转码场景中的应用与优势。倚天710采用ARM架构,通过物理核设计和CIPU加速卡优化,显著提升了高负载下的性能稳定性,并在实际应用中帮助客户实现了20%-40%的性能提升和成本降低。此外,文章还探讨了操作系统、编译器等底层软件的优化,以及如何通过龙蜥社区和阿里云平台支持更多应用场景,助力企业实现高效迁移和性能优化。

热门文章

最新文章