当前位置: 首页 > news >正文

【大数据面试题】007 谈一谈 Flink 背压

一步一个脚印,一天一道面试题(有些难点的面试题不一定每天都能发,但每天都会写)

什么是背压 Backpressure

在流式处理框架中,如果下游的处理速度,比上游的输入数据小,就会导致程序处理慢,不稳定,甚至出现崩溃等问题。

出现背压的原因

  1. 上游数据突然增大
    比如数据源突然数据量增大多倍,下游处理速度跟不上。就像平时的小饭店能处理的很轻松,突然到了过年人多了很多,就会需要客人排队。

  2. 网络,机器异常等
    这个也好理解,如果 team 里突然有人生病了,会导致效率低下。

  3. 下游复杂度,并行度与上游算子不同
    可能下游算子需要处理更久,或者并行度比上游小,处理的没有上游快,进而可能导致背压。

  4. 数据倾斜
    数据倾斜会导致任务分配不均匀,比如任务平时均匀分给 5 个同事,结果有天数据倾斜,把 3个人的任务分配给了其中一个同事,那么他处理时间就会比其他同事长,进而影响团队进度。

背压导致的影响

背压不一定会导致程序直接崩溃,但它可能会引发一系列其他问题,最终导致系统不稳定甚至崩溃。具体来说,背压可能导致以下情况:

  • 增加处理延迟: 背压会导致数据积压,增加数据处理的延迟。如果背压持续存在且得不到有效解决,处理延迟可能会不断累积,最终使系统无法及时响应或处理数据。

  • 降低系统吞吐量: 由于背压限制了数据流的速率,系统的整体吞吐量可能会下降。这会导致系统无法充分利用资源,处理能力受限,影响系统的性能表现。

  • 资源浪费: 背压可能导致部分计算资源空闲或被浪费,因为某些任务可能没有足够的输入数据来处理。这样就浪费了资源,降低了系统的效率。

  • 系统稳定性问题: 背压如果得不到有效管理和解决,可能会导致数据积压越来越严重,最终可能引发系统的不稳定性。数据积压可能导致内存消耗过大、任务阻塞等问题,最终可能使系统崩溃或不可用。

如何发现,定位背压

背压本质是一种,不健康,亚健康状态,可能会出现超时, 失败等问题

  1. 在 Web 页面发现 Checkpoint 超时,失败
  2. JobManager 中,会找到 Checkpoint expired before completing 报错日志
  3. 在 Web 页面的 BackPressure 界面可以看到

如何解决背压亚健康问题

  1. 调整并行度:
    背压可能是由于某些任务的并行度过高或过低导致的。通过调整任务的并行度,使其能够更好地匹配数据的产生和消费速度,从而减少背压问题的发生。

  2. 代码效率低:
    -检查点 Checkpoint 频率过快
    -水位线 Watermark 更新频率过高
    -状态 State 更新快
    -代码逻辑复杂(如复杂 SQL, JOIN 等,需要具体针对优化)

 // 设置Checkpoint相关配置env.enableCheckpointing(10 * 1000); // 设置Checkpoint间隔为10秒env.getCheckpointConfig().setCheckpointTimeout(30 * 1000); // 设置Checkpoint超时时间为30秒// 设置Watermark相关配置env.getConfig().setAutoWatermarkInterval(1 * 1000); // 设置每1秒生成一个Watermark
  1. 监控和告警:
    配置监控系统,实时监测任务的状态、指标和背压情况。当发现背压问题时,及时发送告警并采取相应的措施,例如自动调整任务的并行度或资源分配等。使用 MetricGroup 监控。

定位背压 中引用下面文章
https://www.51cto.com/article/686096.html 背感压力,Flink背压你了解多少?
写的非常好,也有部分我暂时没看懂的部分

看到这里的朋友帮忙点下点赞吧~ 这对我非常有帮助,感谢~

相关文章:

【大数据面试题】007 谈一谈 Flink 背压

一步一个脚印,一天一道面试题(有些难点的面试题不一定每天都能发,但每天都会写) 什么是背压 Backpressure 在流式处理框架中,如果下游的处理速度,比上游的输入数据小,就会导致程序处理慢&…...

爬虫知识--01

爬虫介绍 # 爬虫的概念: 通过编程技术(python:request,selenium),获取互联网中的数据(app,小程序,网站),数据清洗(xpaht,lxml)后存到库中(mysql,redis,文件,excel&#x…...

【Azure 架构师学习笔记】- Azure Databricks (7) --Unity Catalog(UC) 基本概念和组件

本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Databricks】系列。 接上文 【Azure 架构师学习笔记】- Azure Databricks (6) - 配置Unity Catalog 前言 在以前的Databricks中,主要由Workspace和集群、SQL Warehouse组成, 这两年Databricks公…...

react【六】 React-Router 路由

文章目录 1、Router1.1 路由1.2 认识React-Router1.3 Link和NavLink1.4 Navigate1.5 Not Found页面配置1.6 路由的嵌套1.7 手动路由的跳转1.7.1 在函数式组件中使用hook1.7.2 在类组件中封装高阶组件 1.8 动态路由传递参数1.9 路由的配置文件以及懒加载 1、Router 1.1 路由 1.…...

AUTOSAR CP--chapter7从CAN网络学习Autosar通信

从CAN网络学习Autosar通信 前言缩写词CAN通信在AUTOSAR架构中的传输上位机配置 第六章总结:学习了如何使用工具的自动配置功能,位我们生成系统描述中部分ecu的BSW模块配置,但是自动配置的功能虽然为我们提供了极大的便利,我们仍然…...

NX/UG二次开发—CAM—平面铣边界准确设置方法

大家在对平面铣设置边界时,经常遇到边界方向与自己期望的不一致,有些人喜欢用检查刀路是否过切来判断,但是对于倒角、负余量等一些情况,刀路本来就是过切的。对于多边界,可以根据选择的曲线来起点和面的方向来确定&…...

网络安全综合实验

1.实验拓扑 在这里注意因为第四个要求配置双击热备,我们可以第一时间配置,避免二次重复配置消耗时间 4、FW1和FW3组成主备模式的双机热备 具体配置位置在系统-->高可靠性-->双机热备-->配置 这里上行链路有两组,分别为电信和移动&…...

QT-地形3D

QT-地形3D 一、 演示效果二、关键程序三、下载链接 一、 演示效果 二、关键程序 #include "ShaderProgram.h"namespace t3d::core {void ShaderProgram::init() {initializeOpenGLFunctions();loadShaders(); }void ShaderProgram::addShader(const QString &fil…...

C++拷贝构造函数与赋值运算符重载

顾得泉:个人主页 个人专栏:《Linux操作系统》 《C从入门到精通》 《LeedCode刷题》 键盘敲烂,年薪百万! 一、拷贝构造函数 1.概念 在现实生活中,可能存在一个与你一样的自己,我们称其为双胞胎。 那在创…...

全球各国海外媒体发稿新闻营销推广,英美德意法俄日韩多语言

【本篇由言同数字科技有限公司原创】随着全球市场化程度的加深,品牌出海成为越来越多企业的战略选择。而全球各国媒体的发稿,为品牌出海提供了重要的支持与推动。 第一部分:品牌出海的意义 品牌出海是指企业将自己的品牌、产品和服务推向全…...

将phantomjs制成docker镜像

几个前的一篇文章中介绍了phantomjsecharts生成图表图片的一种方式,但其部署复杂,制作为docker镜像运行就方便多了。文章参见:https://blog.csdn.net/u011943534/article/details/121524397 1、准备echarts 将上次文章中提到过下载的Echart…...

【LeetCode+JavaGuide打卡】Day20|530.二叉搜索树的最小绝对差、501.二叉搜索树中的众数、236. 二叉树的最近公共祖先

学习目标: 530.二叉搜索树的最小绝对差 501.二叉搜索树中的众数 236. 二叉树的最近公共祖先 学习内容: 530.二叉搜索树的最小绝对差 题目链接&&文章讲解 给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值之间的最小差值…...

【工具类】开源照片管理工具pthtoprism

1. pthtoprism 1. pthtoprism 1.1. 安装1.2. 管理照片方式 1.2.1. 直接管理原始照片目录1.2.2. 导入照片 1.3. 界面功能1.4. 参考资料 1.1. 安装 wget https://dl.photoprism.app/docker/docker-compose.yml # 修改 docker-compose.yml 文件,具体参考下面内容 d…...

[ linux网络 ] 网关服务器搭建,综合应用SNAT、DNAT转换,dhcp分配、dns分离解析,nfs网络共享以及ssh免密登录

实验准备工作: 网关服务器安装:dhcp bind (yum install -y dhcp bind bind-utlis) server1安装:httpd (yum install -y httpd) 没有网络就搭建本地yum仓库或者配置网卡使其能够上网。 ( 1)网关服务器…...

MySQL全量备份

一、实验素材 1.创建student和score表 (1) student表 create database school; use schoolCREATE TABLE student ( id INT(10) NOT NULL UNIQUE PRIMARY KEY , name VARCHAR(20) NOT NULL , sex VARCHAR(4) , birth YEAR, department VARCHAR(20) , address VARCHAR(50) );(…...

【Linux系统化学习】动静态库 | 软硬链接

目录 硬链接和软链接 硬链接 软链接 动态库和静态库 静态库 静态库的生成 静态库的使用 将库打包和使用 动态库 动态库的生成 动态库的使用 库搜索路径 硬链接和软链接 硬链接 上篇文章我们说到真正找到磁盘上的文件并不是文件名,而是inode。其实在…...

linux-firewalld防火墙端口转发

目的:通过统一地址实现对外同一地址暴露 1.系统配置文件开启 ipv4 端口转发 echo "net.ipv4.ip_forward 1" >> /etc/sysctl.confsysctl -p 2.查看防火墙配置端口转发之前的状态 firewall-cmd --statefirewall-cmd --list-all 3.开启 IP 伪装 firewall-cm…...

adobe软件提示This non-genuine Adobe app will be disabled soon【软件版本】

因为电脑上级路由器装了小飞机,导致本机电脑ps等adobe的系列软件出现了 This non-genuine Adobe app will be disabled soon,烦人的狠,之前有写过一篇通过更改host的教程,现在已经失效了,今天为大家分享一个用软件来屏…...

python coding with ChatGPT 打卡第20天| 二叉搜索树:搜索、验证、最小绝对差、众数

相关推荐 python coding with ChatGPT 打卡第12天| 二叉树:理论基础 python coding with ChatGPT 打卡第13天| 二叉树的深度优先遍历 python coding with ChatGPT 打卡第14天| 二叉树的广度优先遍历 python coding with ChatGPT 打卡第15天| 二叉树:翻转…...

Stable Diffusion——基础模型、VAE、LORA、Embedding各个模型的介绍与使用方法

前言 Stable Diffusion(稳定扩散)是一种生成模型,基于扩散过程来生成高质量的图像。它通过一个渐进过程,从一个简单的噪声开始,逐步转变成目标图像,生成高保真度的图像。这个模型的基础版本是基于扩散过程…...

第11天:函数组合、记忆化与定时器

今天复习了函数组合、记忆化、setTimeout 和 setInterval,以下是知识点梳理与问答整理。一、函数组合(Compose / Pipe)1. 什么是函数组合?我的回答:把上一个函数的返回值作为下一个函数的参数,形成流水线式…...

终极抖音批量下载指南:5分钟搞定无水印视频批量采集

终极抖音批量下载指南:5分钟搞定无水印视频批量采集 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support…...

Topit:让Mac窗口像便利贴一样随手可贴,你的多任务效率神器

Topit:让Mac窗口像便利贴一样随手可贴,你的多任务效率神器 【免费下载链接】Topit Pin any window to the top of your screen / 在Mac上将你的任何窗口强制置顶 项目地址: https://gitcode.com/gh_mirrors/to/Topit 还在为Mac上频繁切换窗口而打…...

EcomGPT-中英文-7B电商模型在Vue.js前端项目中的集成:打造实时智能客服聊天组件

EcomGPT-中英文-7B电商模型在Vue.js前端项目中的集成:打造实时智能客服聊天组件 最近在做一个电商后台的升级项目,客户提了个需求,希望能在用户端和管理后台都加上一个智能客服,能实时回答商品咨询、订单状态这些常见问题。一开始…...

从隔离菜谱到通用烹饪指南:Cook用户体验设计的完整演进之路

从隔离菜谱到通用烹饪指南:Cook用户体验设计的完整演进之路 【免费下载链接】cook 🍲 好的,今天我们来做菜!OK, Lets Cook! 项目地址: https://gitcode.com/gh_mirrors/co/cook 在数字化时代,烹饪应用已成为厨房…...

掌控Mac温度:Turbo Boost Switcher技术指南与性能优化方案

掌控Mac温度:Turbo Boost Switcher技术指南与性能优化方案 【免费下载链接】Turbo-Boost-Switcher Turbo Boost disabler / enable app for Mac OS X 项目地址: https://gitcode.com/gh_mirrors/tu/Turbo-Boost-Switcher 在Intel处理器时代,Mac用…...

Chord视频时空定位惊艳效果:边界框动态跟踪+毫秒级时间戳可视化呈现

Chord视频时空定位惊艳效果:边界框动态跟踪毫秒级时间戳可视化呈现 1. 工具核心能力展示 Chord视频时空理解工具基于先进的Qwen2.5-VL架构开发,专门解决视频内容分析的复杂需求。与传统图像分析工具不同,Chord能够理解视频中的时序信息&…...

从手动到工具,我降AI率的方法进化史

从手动到工具,我降AI率的方法进化史 从2024年初开始用AI辅助写论文,到2026年毕业,我的降AI率方法经历了三次进化。 每次进化都不是主动选择,而是被逼的——上一个方法撞了墙,不得不换。 把这个过程写出来&#xff0…...

高并发场景下的订单和库存处理方案

前言之前一直有小伙伴私信我问我高并发场景下的订单和库存处理方案,我最近也是因为加班的原因比较忙,就一直没来得及回复。今天好不容易闲了下来想了想不如写篇文章把这些都列出来的,让大家都能学习到,说一千道一万都不如满满的干…...

PE结构 ---> 9.RvaToFoa 内存状体到文件状态

目录 1. 为什么必须进行 RVA → FOA 转换?(核心矛盾) 2. 磁盘布局 vs 内存布局(对比详解) 3. RVA、VA、FOA 精确定义与关系 4. RvaToFoa 函数完整技术详解(核心算法) 5. 实战案例&#xff…...