我们能否创建一个对Apache Flink中的所有操作员都可访问的对象?

问题描述

我正在构建一个有助于监视多个运算符的数值性能的类。我目前的想法是创建一个类似update()方法,并在每次需要操作员更新某些内容时都调用方法。但是,这意味着我需要创建一个对象,该对象对于我要监视的每个操作员都是可见的。这可能吗?还是会有更好的解决方案?谢谢!

解决方法

如果您知道所有操作员都在单个JVM(您有一个任务管理器)中运行,则可以创建一个单例,所有操作员都可以使用该记录来记录活动。

如果它是具有多个TM的Flink集群,则每个TM都在各自的JVM中运行,因此您必须使用一些分布式系统来记录此活动。

俗气的解决方案是使用日志记录,然后对日志进行后期处理以提取所需的信息。

或者您也许可以使用Flink的内置指标来收集所需的信息。