【问题标题】:Apache Flink: changing state parameters at runtime from outsideApache Flink:在运行时从外部更改状态参数
【发布时间】:2016-07-21 13:25:03
【问题描述】:

我目前正在开发流式 ML 管道,并且只需要一次事件处理。我对 Flink 很感兴趣,但我想知道是否有任何方法可以从外部更改/更新执行状态。

ml 算法状态由 Flink 保存,这没关系,但考虑到我想在运行时更改一些执行参数,我找不到可行的解决方案。基本上,一个外部 webapp(在 GO 中)用于调整参数,变化应该反映在 Flink 中以供后续事件使用。

我想过:

  • 与 pub/sub 共享的 Redis(因为轮询每个事件会降低吞吐量)
  • 在 Go 中编写自定义解决方案:D
  • ...

状态将通过密钥保存,与来自 Kafka 的多个事件流之一的源相关。

谢谢

【问题讨论】:

    标签: scala machine-learning apache-flink flink-streaming bigdata


    【解决方案1】:

    您可以使用CoMapFunction/CoFlatMapFunction 来实现您所描述的。其中一个输入是正常数据输入,而在另一个输入上您会收到状态更改命令。这可能是通过专门的 Kafka 主题最容易获取的。

    【讨论】:

    • 看起来很有希望,我正在考虑向 Flink 发送“控制事件”,但由于我在互联网上没有找到任何东西,所以我认为我可能只是在滥用一些不符合目的的东西。 ..我的意思是也许 Flink(和朋友)不是这个应用程序的最佳选择?我的情况有那么不寻常吗?
    • 我认为 co 函数正是为这类用例而设计的,在这些用例中,您有多个输入流但仍希望访问元素到达的相同状态。
    • 谢谢 Till,我会试试看的!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多