Flink正常消费一段时间后,大量反压,看着像卡住了,但又没有报错。

这篇具有很好参考价值的文章主要介绍了Flink正常消费一段时间后,大量反压,看着像卡住了,但又没有报错。。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

前面我也有提到,发现flink运行一段时间后,不再继续消费的问题。这个问题困扰了我非常久,一开始也很迷茫。又因为比较忙,所以一直没有时间能够去寻找答案,只是通过每天重启的方式去解决。经过分析,其实这个问题也很容易找到根源,有兴趣就和我一起看下叭


一、原因分析

首先介绍一下这个程序大概流程,比较简单。
Flink正常消费一段时间后,大量反压,看着像卡住了,但又没有报错。,flink,大数据

一个输入源,经过一个算子,最后开了三个窗口。并行度都写在括号里了。
下面这是一张taskmanager的cpu使用率,可以看出,到最后要停掉前也没有出现cpu高飘的情况,并且心跳依然存在,程序还是在继续运行的。
Flink正常消费一段时间后,大量反压,看着像卡住了,但又没有报错。,flink,大数据
我们从flink运行图上面可以看到,反压很严重
Flink正常消费一段时间后,大量反压,看着像卡住了,但又没有报错。,flink,大数据
矛盾就出现了,明明压力很大,为何cpu使用率却几乎为0
于是我点开压力最大的哪个window,查看subtask的情况,找到对应busy为100的subtask
Flink正常消费一段时间后,大量反压,看着像卡住了,但又没有报错。,flink,大数据
可以看到,这个subtask所处理的数据太多了。一开始我也网上很多网友一样认为是key分配失衡的问题,但是我修改完代码,发现反而失衡更严重了,所以我认为不是失衡的问题。而是其中的某个key确实太多了,且数据上显示,也确实是有一个key量非常大。所以不管用什么方式,这个key必然经过hash之后还是一样的,也会走到同一个subtask中去。这个无法避免。

二、解决方案

因此我想到的是,采用丢失精度的做法。原本我是开了一天的窗口,滑动间隔时一小时。
那么既然处理不来,方案就是
如果这个key不需要的话,通过白名单过滤
加大滑动间隔的做法
使用滚动窗口代替滑动窗口的做法,这种案例在网上可以找到很多,只是说选择一种合适的办法去处理,找到办法之后,代码那都是简单的事了。文章来源地址https://www.toymoban.com/news/detail-625885.html

到了这里,关于Flink正常消费一段时间后,大量反压,看着像卡住了,但又没有报错。的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Flink 如何处理反压?

    什么是反压(backpressure) 反压通常是从某个节点传 导至数据源 并降低数据源(比如 Kafka consumer)的 摄入速率 。反压意味着数据管道中某个节点成为瓶颈,处理速率跟不上上游发送数据的速率,而需要对 上游进行限速 。 反压的影响 反压并不会直接影响作业的可用性,它表

    2024年02月10日
    浏览(87)
  • Flink 如何定位反压节点?

    Flink Web UI 自带的反压监控 —— 直接方式 Flink Web UI 的反压监控提供了 Subtask 级别 的反压监控。监控的原理是 通过Thread.getStackTrace() 采集在 TaskManager 上正在运行的所有线程,收集在缓冲区请求中阻塞的线程数(意味着下游阻塞),并计算缓冲区阻塞线程数与总线程数的比值

    2024年02月10日
    浏览(41)
  • Flink-网络流控及反压剖析

    参考: Apache Flink学习网

    2024年02月13日
    浏览(32)
  • 对比Flink、Storm、Spark Streaming 的反压机制

    Flink 反压机制 Flink 如何处理反压? Storm 反压机制 Storm反压机制   Storm 在每一个 Bolt 都会有一个监测反压的线程(Backpressure Thread),这个线程一但检测到 Bolt 里的接收队列(recv queue)出现了严重阻塞就会把这个情况写到 ZooKeeper 里,ZooKeeper 会一直被 Spout 监听,监听到有反压的

    2024年02月10日
    浏览(49)
  • 笔记本电脑开机卡住无法正常启动怎么办?

    笔记本电脑开机卡住无法正常启动怎么办?有用户使用的笔记本电脑在开机的时候出现了卡住的情况,无法正常的开机进入到系统界面中,那么这个情况要怎么去解决问题呢?一起来看看以下的笔记本电脑开机卡住无法正常启动解决方法分享吧。 准备工作: 1、U盘一个(尽量

    2024年02月09日
    浏览(64)
  • 一种基于动态水位值的Flink调度优化算法(flink1.5以前),等同于实现flink的Credit-based反压原理

    首先说明,偶然看了个论文,发现 flink优化原来比我想象中的更简单,得到了一些启发,所以写下这篇帖子,供大家共同学习。 看到的论文是《计算机科学与应用》21年11月的一篇 名字就叫做 : 一种基于动态水位值的Flink调度优化算法。感兴趣的小伙伴可以自己看一下 ,很

    2024年02月22日
    浏览(49)
  • Elasticsearch 一段时间后出现 SocketTimeoutException的问题

    java springboot 使用ES客户端连接 一段时间闲置后,首次调用es命令会报SocketTimeOutException问题,再次调用不会报错 问题出现原因: Elasticsearch 客户端会根据服务器返回的HTTP报文内容,来决定客户端保持HTTP连接Keep-Alive状态的策略。 如果结果如下,那么保持HTTP连接 Keep-Alive状态为

    2024年02月09日
    浏览(43)
  • Kafka 消息不能正常消费问题排查

    事情的起因是用户在 app 上查不到订单了,而订单数据是从 mysql 的 order_search 表查询的,order_search 表的数据是从 oracle 的 order 表同步过来的,查不到说明同步有问题 首先重启,同步数据,问题解决,然后查找原因。首先看日志,有如下两种情况 有的容器消费消息的日志正常

    2024年01月18日
    浏览(50)
  • element ui datePick时间日期一段时间,限制选择日期的范围

     时间戳,一天 想限制只能选日期间隔为一年,联合选择器样式不好改,使用俩单独的 有两个办法限制 1.一个在外层使用form通过表单验证控制,出现错误提示(由于是两个单独的组件,触发验证的方式又为单个失去焦点,所以俩组件无法实时更新) 2.用datepick自带的属性di

    2024年02月05日
    浏览(45)
  • 如何通过ELK统计一段时间内接口被调用次数及平均响应时间

    ELK,全名是: Elasticsearch,有了它,我们可以很方便地进行日志查询。 那么,假如想要统计某个服务的接口在某段时间内的被调用次数平均响应时间,类似于下面的效果: 那应该怎么做呢? 步骤如下, 1、打开ELK地址,找到Dev Tools 2、点击Dev Tools,输入执行内容 说明: 注意

    2024年02月12日
    浏览(57)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包