Flink系列-背压(反压)
目录
- 了解背压
- 什么是背压
- 背压产生的原因
- 背压导致的影响
- 定位背压
- 解决背压
了解背压
什么是背压
在流式处理系统中,如果出现下游消费的速度跟不上上游生产数据的速度,就种现象就叫做背压
(backpressure,也叫反压)
背压产生的原因
下游消费的速度跟不上上游生产数据的速度,可能出现的原因如下:
- 节点有性能瓶颈,可能是该节点所在的机器有网络、磁盘等等故障,机器的网络延迟和磁盘不
足、频繁 GC、数据热点等原因。 - 数据源生产数据的速度过快,计算框架处理不及时。比如消息中间件 kafka,生产者生产数据过
快,下游 flink 消费计算不及时。 - flink 算子间并行度不同,下游算子相比上游算子过小。
背压导致的影响
首先,背压不会直接导致系统的崩盘,只是处在一个不健康的运行状态。
- 背压会导致流处理作业数据延迟的增加。
- 影响到 Checkpoint,导致失败,导致状态数据保存不了,如果上游是 kafka 数据源,在一致性
的要求下,可能会导致 offset 的提交不上。
原理: 由于 Flink 的 Checkpoint 机制需要进行 Barrier 对齐,如果此时某个 Task 出现了背压,Barrier流动的速度就会变慢,导致 Checkpoint 整体时间变长,如果背压很严重,还有可能导致 Checkpoint超时失败。 - 影响 state 的大小,还是因为 checkpoint barrier 对齐要求。导致 state 变大。
原理:接受到较快的输入管道的 barrier 后,它后面数据会被缓存起来但不处理,直到较慢的输入管道的 barrier 也到达。这些被缓存的数据会被放到 state 里面,导致 state 变大。
定位背压
- 在 web 页面发现 fink 的 checkpoint 生成超时。
- 查看 jobmanager 日志。
- 在 BackPressure 界面直接可以看到。
- Metrics 监控背压。
解决背压
Flink不需要一个特殊的机制来处理背压,因为Flink中的数据传输相当于已经提供了应对背压的机制。
所以只有从代码上与资源上去做一些调整。
- 背压部分原因可能是由于数据倾斜造成的,我们可以通过 Web UI 各个 SubTask 的 指标值来
确认。Checkpoint detail 里不同 SubTask 的 State size 也是一个分析数据倾斜的有用指标。
解决方式把数据分组的 key 预聚合来消除数据倾斜。 - 代码的执行效率问题,阻塞或者性能问题。
- TaskManager 的内存大小导致背压。
Flink系列-背压(反压)相关推荐
- 背压/反压/BackPressure
Flink系列文章 更多Flink系列文章请点击Flink系列文章 更多大数据文章请点击大数据好文推荐 转载声明 本文大量内容系转载自以下文章,有删改,并参考其他文档资料加入了一些内容: Apache ...
- Flink 网络流控和反压剖析详解
传送门:Flink 系统性学习笔记 前言: 本文根据 Apache Flink 系列直播整理而成,由 Apache Flink Contributor.OPPO 大数据平台研发负责人张俊老师分享,社区 ...
- 一文弄懂Flink网络流控及反压
一文弄懂Flink网络流控及反压 1. 为什么需要网络流控? 2. 网络流控的实现:静态限速 3. 网络流控的实现:动态反馈/自动反压 3.1 案例一:Storm 反压实现 3.2 案例二:Spark ...
- Flink教程(31)- Flink网络流控及反压
文章目录 01 引言 02 为什么需要网络流控? 03 网络流控的实现:静态限速 04 网络流控的实现:动态反馈/自动反压 4.1 案例一:Storm 反压实现 4.2 案例二:Spark Strea ...
- 【Flink】Flink 反压机制 导致checkpoint 失败
1.概述 转载:flink检查点checkpoint失败问题总结-2 问题描述:检查点刚开始是可以的做checkpoint的,后期越来越不能够做checkpoint的情况总结 2.反压问题 2.1 什 ...
- Flink的背压机制
想起来之前被问到了一个问题,如果Flink中的Task是一直不停的运行的话,那么拉取Kafka数据的Source端是不是会一直不停的拉取数据,如果消费速度不及时,内存不就很快会被撑爆了么?一开始对这个 ...
- 【Flink】Flink反压(背压)网络流控
1.美图 2.概述 界面查看:Flink UI: Flink 1.10 如何查看 数据源 的背压(反压)情况(消费kafka) 为了判断是否进行反压,jobmanager会每50ms触发100次sta ...
- 一文搞懂 Flink 网络流控与反压机制
看完本文,你能get到以下知识 Flink 流处理为什么需要网络流控? Flink V1.5 版之前网络流控介绍 Flink V1.5 版之前的反压策略存在的问题 Credit的反压策略实现原理,Cr ...
- Flink核心篇,四大基石、容错机制、广播、反压、序列化、内存管理、资源管理...
Flink基础篇,基本概念.设计理念.架构模型.编程模型.常用算子 大纲: 1.Flink的四大基石包含哪些? 2.讲一下Flink的Time概念? 3.介绍下Flink窗口,以及划分机制? 4.介绍 ...
最新文章
- 通过异或运算符加密解密 难度二星
- C#开发学习——内联表达式
- CTF-PWN环境搭建
- tomcat日志按天切分
- Chapter3-1_Speech Separation(Deep Clustering, PIT)
- CodeForces 8D Two Friends 判断三个圆相交
- Datagridview中的数据很多,加载完数据后滚动条自动到最下边,如何解决?
- redis面试常问--缓存穿透
- lombok依赖包介绍
- 基于WEB的本科毕业设计管理系统
- 大一大学计算机应用基础,大一计算机应用基础试题
- 编译原理学习之:有限状态机(Finate-state Automaton)
- Windows Ready Boost,使用闪存设备提高性能
- 网易游戏策划笔试2019春招题解
- matlab读取snp文件,bcftools 提取vcf(snp/indel)文件子集
- 开放式激光振镜运动控制器:C++振镜矫正方法与实现
- 《夜深人静写算法》数论篇 - (22) 卢卡斯定理
- 周 7 福利日:中奖名单公布
- RT-Thread学习笔记(9):邮箱
- Cesium隐藏版权信息
热门文章
- 设计模式(一)继承+组合
- iostextarea获取焦点_jquery – 在iOS上的Safari中针对textarea触发的不一致事件
- iphone html阅读,iPhone如何使用Safari浏览器阅读列表功能
- 用位运算完成大小比较
- 如何理解类型geometry和geography以及4326、3857坐标系
- 解决”您的连接不是私密链接“的问题!
- 09 模型的增删查改《ThinkPHP6 入门到电商实战》
- 个人实用java 常用语句(工作笔记)
- java集合类继承关系图_java集合继承关系图
- LSM-Tree 的写放大写放大、读放大、空间放大RockDB、leveldb 写放大简单分析参考文档