Apache flink Flink背压指示-如何确定其根本原因

Apache flink Flink背压指示-如何确定其根本原因,apache-flink,Apache Flink,如何确定任务中背压的根本原因? (即-多操作员任务中的哪个操作员导致背压) 是否有相关日志?(跟踪StackTraceSampleCoordinator失败—“收到的延迟堆栈跟踪样本”未出现在任何日志中) 我还可以使用其他工具吗 ===================================== 以下是我遇到的情况: 在Flink作业执行期间,将显示背压指示。 据我所知,引发任务是继“最新”任务之后的任务,该任务具有BP指示。 此任务正在运行多个操作符流:reduce、map和sin

如何确定任务中背压的根本原因? (即-多操作员任务中的哪个操作员导致背压)

  • 是否有相关日志?(跟踪StackTraceSampleCoordinator失败—“收到的延迟堆栈跟踪样本”未出现在任何日志中)
  • 我还可以使用其他工具吗
=====================================

以下是我遇到的情况: 在Flink作业执行期间,将显示背压指示。 据我所知,引发任务是继“最新”任务之后的任务,该任务具有BP指示。 此任务正在运行多个操作符流:reduce、map和sink。 分析作业指标没有帮助-从前面的操作符中得到的是该操作符内部得到的。 以下工作计划的第一个和第二个任务出现背压指示:

[源代码:自定义源代码->过滤器->(平面图->时间戳/水印)]->
[时间戳/水印]->
[TriggerWindow(TumblingEventTimeWindows(300000),ReduceingStateDescriptor{serializer=org.apache.flink.api.java.typeutils.runtime。TupleSerializer@f812e02f,还原函数=EntityReducer@2d19244c},EventTimeTrigger(),WindowedStream.reduce(WindowedStream.java:300))->Map->Sink:Unnamed]

  • 其中[]表示任务

在Flink UI中,任务的背压表示任务对
collect()
的调用被阻塞。因此,如果您的示例中的任务1和任务2有背压,那么任务3中的某些内容可能跟不上您的源代码

请注意,如果您的源正在毫不延迟地合成事件,但您有一个真正的接收器,那么当接收器成为瓶颈时,您将始终看到背压。关于您的实际源和汇的详细信息在这里会很有用


为了更深入地了解Task3内部发生的事情,您可以连接类似于YourKit的东西来监视该任务中各种(流水线)操作的实际CPU使用情况。或者只是
kill-QUIT几次,看看哪些线程被阻塞了/正在做真正的工作。

谢谢!显然,背压是由elasticsearch水槽和减速器操作器触发的