在 Flink 应用程序中使用 Autoscaler - Amazon EMR
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在 Flink 应用程序中使用 Autoscaler

Operator Autoscaler 可以从 Flink 任务中收集指标,并自动调整任务顶点级别的并行度,从而帮助缓解反向压力。配置可能类似于如下示例:

apiVersion: flink.apache.org/v1beta1 kind: FlinkDeployment metadata: ... spec: ... flinkVersion: v1_17 flinkConfiguration: kubernetes.operator.job.autoscaler.enabled: "true" kubernetes.operator.job.autoscaler.stabilization.interval: 1m kubernetes.operator.job.autoscaler.metrics.window: 5m kubernetes.operator.job.autoscaler.target.utilization: "0.6" kubernetes.operator.job.autoscaler.target.utilization.boundary: "0.2" kubernetes.operator.job.autoscaler.restart.time: 2m kubernetes.operator.job.autoscaler.catch-up.duration: 5m pipeline.max-parallelism: "720" ...

以下是 Autoscaler 的配置选项。

  • kubernetes.operator.job.autoscaler.scaling.enabled – 指定是否启用 Autoscaler 操作。默认设置为 false,以支持被动/仅指标模式;在该模式下,Autoscaler 仅收集并评估与扩展相关的性能指标,而不会触发任何任务升级。这可用来增强对模块的信心,却不会对正在运行的应用程序产生任何影响。

  • kubernetes.operator.job.autoscaler.stabilization.interval – 不会执行新扩展的稳定期。默认值为 5 分钟。

  • kubernetes.operator.job.autoscaler.metrics.window – 扩展指标聚合窗口大小。窗口越大,就越流畅、越稳定,但 Autoscaler 对负载突变做出反应的速度可能会变慢。默认值为 10 分钟。建议使用 3 到 60 分钟之间的值进行实验。

  • kubernetes.operator.job.autoscaler.target.utilization – 提供稳定任务性能和一定负载波动缓冲能力的目标顶点利用率。默认值为 0.7,即任务顶点的目标利用率/负载率为 70%。

  • kubernetes.operator.job.autoscaler.target.utilization.boundary – 目标顶点利用率边界,用作额外的缓冲,避免在负载波动时立即扩展。默认值为 0.4,即在触发扩展操作之前,允许与目标利用率有 40% 的偏差。

  • kubernetes.operator.job.autoscaler.restart.time – 重新启动应用程序的预计时间。默认值为 3 分钟。

  • kubernetes.operator.job.autoscaler.catch-up.duration – 赶上进度的预计时间,即在扩展操作完成后完全处理积压工作的时间。默认值为 5 分钟。通过缩短赶上进度的持续时间,Autoscaler 必须为扩展操作预留更多额外容量。

  • pipeline.max-parallelism – Autoscaler 可以使用的最大并行度。如果该限值高于 Flink 配置中设定的最大并行度或直接在每个 Operator 上设定的最大并行度,则 Autoscaler 会忽略此限值。默认值为 200。请注意,Autoscaler 将并行度计算为最大并行度数的除数,因此建议选择具有大量除数的最大并行度设置,而非依赖 Flink 提供的默认设置。建议对此配置使用 60 的倍数,例如 120、180、240、360、720。

有关详细配置的参考页面,请参阅 Autoscaler configuration