【问题标题】:Any idea for dynamic scaling flink job?对动态缩放 flink 作业有任何想法吗?
【发布时间】:2019-09-05 04:21:54
【问题描述】:

如果有一个 10 个分区的 kafka 主题,我们想使用 flink 来消费该主题。我们希望系统根据工作负载动态分配槽,这意味着如果工作负载低,flink 作业可以使用更少的槽(并行度较低),如果工作负载高,它可以以更高的并行度运行。有没有好的方法来实现这一目标?似乎可以通过先停止作业来改变并行度。如果是这样,暂停期是否会影响应用程序的实时功能?还有其他改变并行性的想法吗?非常感谢。

【问题讨论】:

    标签: apache-flink


    【解决方案1】:

    有一个REST api call 用于修改正在运行的作业的并行性,但目前重新分配状态的唯一方法是创建一个保存点并从中重新启动,这就是重新缩放的工作方式(至少目前如此)。

    如果您的应用程序正在使用事件时间处理,那么结果应该不受重启的影响,但它们会被延迟,当然,会受到停机时间的影响。

    更新:之前有一个 CLI 命令来进行重新缩放,但在 Flink 1.9.0 中暂时禁用了。见FLINK-12312。

    【讨论】:

    • CLI 命令的链接已损坏。我实际上找不到正确的。可以更新一下吗?
    • 我已经更新了答案,说明 CLI 命令在 Flink 1.9.0 中被删除了,但是当它正常工作时会返回。
    【解决方案2】:

    有没有实现动态缩放的好方法?

    据我所知,目前的答案是否定的。但是,我们可以看出 FLIP-6 Flink Development and Process Model 已经在考虑这一点。

    暂停时间是否会影响应用程序的实时功能?

    是的。时间成本将在取消、重新启动、重新分配资源和状态等方面。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-24
      • 1970-01-01
      • 1970-01-01
      • 2019-02-22
      • 1970-01-01
      • 1970-01-01
      • 2019-06-06
      • 2013-09-27
      相关资源
      最近更新 更多