开发者社区> 问答> 正文

实时计算Flink中,任务反压的现象是什么?

已解决

实时计算Flink中,任务反压的现象是什么?

展开
收起
詹姆斯邦德00 2022-10-17 11:15:46 554 0
1 条回答
写回答
取消 提交回答
  • 推荐回答

    反压是在Flink实时数据处理中经常遇到的问题,是在实时数据流的管道某个节点上游产生数据的速度大于该节点处理数据速度出现瓶颈。反压会从该节点向上游传递,一直到数据源,并降低数据源的摄入速度。这在流数据处理中非常常见,很多场景可以导致反压的出现,比如, GC导致短时间数据积压,数据的波动带来的一段时间内需处理的数据量有突增,任务负载大节点内存CPU使用率较高,以及任务checkpoint本身异常都可能造成反压。

    具体到flink任务上查看,出现反压的时候,在flink UI上可以看到一个 task 发生反压警告,意味着它生产数据的速率比下游 task 消费数据的速率要快。 在工作流中数据记录是从上游向下游流动的(例如:从 Source 到 Sink)。

    以一个简单的 Source -> Sink job 为例。如果看到 Source 发生了警告,意味着Sink 消费数据的速率比 Source 生产数据的速率要慢。 Sink 正在向上游的 Source算子产生反压。

    image.png

    在Flink WebUI 集合了所有 subTasks 的反压和繁忙指标的最大值,并在 Job-Graph 中将集合的值进行显示。除了显示原始的数值,tasks 也用颜色进行了标记,使检查更加容易。闲置的 tasks 为蓝色,完全被反压的 tasks 为黑色,完全繁忙的tasks 被标记为红色。 中间的所有值都表示为这三种颜色之间的过渡色。

    在Job Overview 旁的 Back Pressure 选项卡中,可以具体看到当前节点的backpressured(反压)和Busy情况来具体判断节点的反压情况。

    image.png

    如果你看到 subtasks 的状态为 OK 表示没有反压。HIGH 表示这个 subtask 被反压。状态用如下定义:

    •OK: 0% <= 反压比例 <= 10%

    •LOW: 10% < 反压比例 <= 50%

    •HIGH: 50% < 反压比例 <= 100%

    除此之外,你还可以找到每一个 subtask 被反压、闲置或是繁忙的时间百分比。

    以上内容摘自《企业级云原生白皮书项目实战》电子书,点击https://developer.aliyun.com/ebook/download/7774可下载完整版

    2022-10-17 19:16:42
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
阿里云开发者社区官方技术圈,用户产品功能发布、用户反馈收集等。
问答排行榜
最热
最新

相关电子书

更多
Flink CDC Meetup PPT - 龚中强 立即下载
Flink CDC Meetup PPT - 王赫 立即下载
Flink CDC Meetup PPT - 覃立辉 立即下载