Apache Flink:在运行时从外部更改状态参数
Apache Flink: changing state parameters at runtime from outside
我目前正在研究流式 ML 管道,并且只需要一次事件处理。我对 Flink 很感兴趣,但我想知道是否有任何方法可以从外部 alter/update 执行状态。
ml算法状态由Flink保存,没关系,但考虑到我想在运行时更改一些执行参数,我找不到可行的解决方案。基本上,外部网络应用程序(在 GO 中)用于调整参数,更改应反映在 Flink 中以用于后续事件。
我考虑过:
- 与 pub/sub 共享 Redis(因为对每个事件进行轮询会降低吞吐量)
- 用 Go 编写自定义解决方案 :D
- ...
状态将由密钥保存,与来自 Kafka 的多个事件流之一的来源相关。
谢谢
您可以使用 CoMapFunction
/CoFlatMapFunction
来实现您所描述的。其中一个输入是普通数据输入,另一个输入是您接收状态更改命令的输入。这可以通过专门的 Kafka 主题最简单地获取。
我目前正在研究流式 ML 管道,并且只需要一次事件处理。我对 Flink 很感兴趣,但我想知道是否有任何方法可以从外部 alter/update 执行状态。
ml算法状态由Flink保存,没关系,但考虑到我想在运行时更改一些执行参数,我找不到可行的解决方案。基本上,外部网络应用程序(在 GO 中)用于调整参数,更改应反映在 Flink 中以用于后续事件。
我考虑过:
- 与 pub/sub 共享 Redis(因为对每个事件进行轮询会降低吞吐量)
- 用 Go 编写自定义解决方案 :D
- ...
状态将由密钥保存,与来自 Kafka 的多个事件流之一的来源相关。
谢谢
您可以使用 CoMapFunction
/CoFlatMapFunction
来实现您所描述的。其中一个输入是普通数据输入,另一个输入是您接收状态更改命令的输入。这可以通过专门的 Kafka 主题最简单地获取。