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

这篇具有很好参考价值的文章主要介绍了【大数据面试题】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背压你了解多少?
写的非常好,也有部分我暂时没看懂的部分

看到这里的朋友帮忙点下点赞吧~ 这对我非常有帮助,感谢~文章来源地址https://www.toymoban.com/news/detail-831260.html

到了这里,关于【大数据面试题】007 谈一谈 Flink 背压的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 谈一谈扫码登录原理

      今天给大家介绍下扫码登录功能是怎么设计的。 扫码登录功能主要分为三个阶段: 待扫描、已扫描待确认、已确认 。 整体流程图如图。 下面分阶段来看看设计原理。 1、待扫描阶段 首先是待扫描阶段,这个阶段是 PC 端跟服务端的交互过程。 每次用户打开PC端登陆请求,

    2024年02月10日
    浏览(47)
  • 谈一谈缓存穿透,击穿,雪崩

    缓存穿透是指在使用缓存系统时,频繁查询一个不存在于缓存中的数据,导致这个查询每次都要通过缓存层去查询数据源,无法从缓存中获得结果。这种情况下,大量的请求会直接穿透缓存层,直接访问数据源,从而增加了系统的负载,降低了系统的性能。 通常情况下,当一

    2024年02月14日
    浏览(52)
  • 谈一谈Python中的装饰器

    1.1 何为Python中的装饰器? Python中装饰器的定义以及用途: 装饰器是一种特殊的函数,它可以接受一个函数作为参数,并返回一个新的函数。装饰器可以用来修改或增强函数的行为,而不需要修改函数本身的代码。在Python中,装饰器通常用于实现AOP(面向切面编程),例如日

    2023年04月16日
    浏览(63)
  • 谈一谈冷门的C语言爬虫

    C语言可以用来编写爬虫程序,但是相对于其他编程语言,C语言的爬虫开发可能会更加复杂和繁琐。因为C语言本身并没有提供现成的爬虫框架和库,需要自己编写网络请求、HTML解析等功能。 不过,如果你对C语言比较熟悉,也可以尝试使用C语言编写爬虫程序,这样可以更好地

    2024年02月08日
    浏览(57)
  • 谈一谈Vue怎么用extend动态创建组件

    Vue.js是一个流行的JavaScript框架,它提供了许多功能来帮助我们构建交互式Web应用程序。其中之一是使用extend方法动态创建组件。   extend方法是Vue.js提供的一个方法,它允许我们创建一个新的Vue组件构造函数。这个新的构造函数可以继承现有的组件,也可以添加新的选项。 我

    2023年04月24日
    浏览(44)
  • [轻科普]谈一谈最近手机上的2亿像素

    最近很多厂商发布了2亿像素的手机,2亿像素比较火热,如realme 11 pro + ,荣耀的honor 90 pro,以及之前小米发布的Redmi note 12 pro +。 下图为honor 90 Pro上搭载的2亿像素 ,为S5KHP3 下图为 红米上搭载的S5kHPX 2亿像素传感器。    下图为 Realme的两亿像素,S5KHP3的超级变焦版本   以上三

    2024年02月06日
    浏览(57)
  • 谈一谈如何加快android的项目的编译速度

    随着android的组件化的到来,一个项目后期功能越来越多,模块拆分的越来越多,作为android的开发的小伙伴就不得不面对运行一下android项目可能需要5,6分钟甚至10几分钟的等待期,开发时间都浪费在编译上了,你说烦不烦呢!那么怎么解决这个困境,总不能就这么一直凑合着

    2024年02月12日
    浏览(67)
  • 【谈一谈】: 我们工作中的单例模式有哪些写法?

    我们要实现一个单例,首先最重要的是什么? 当然是把构造函数私有化,变成 private 类型,(为啥? 单例单例,如果谁都能通过构造函数创建对象,还叫单例吗?是不~) 嗯~我们构造函数私有化后,我们应该 操作啥 呢? 接着我们需要提供 一个方法 ,这个方法要保证初始化 有且仅 初始化 一

    2024年02月21日
    浏览(48)
  • 【12期】谈一谈redis两种持久化机制的区别?

    RDB方案可以在规定时间间隔内创建数据集的时间点快照。 AOF方案记录了服务器执行的所有写操作命令,并在服务器启动时通过重新执行这些命令来还原数据集。AOF文件完全遵循Redis协议格式保存,新命令会被追加到文件末尾。此外,Redis还能在后台对AOF文件重写以确保不超过

    2024年02月11日
    浏览(42)
  • 谈一谈前端私有组件库的必要性(组件库系列一)

    工作多年遇到各种各样的项目,往往在固定的岗位或者说固定的业务部门,同类型的项目出现的频率极高。很多同学对于组件库这个概念更多的使用场景,可能是拿到开源的一些组件库开箱即用。如PC端的ElementUI、Ant-design、移动端的vant之类的。这些开源的组件库能够很大程度

    2024年02月07日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包