【问题标题】:Flink task slots are not evenly distributed when setting operator parallelism larger than default parallelism将算子并行度设置为大于默认并行度时,Flink 任务槽分布不均匀
【发布时间】:2019-03-26 16:36:14
【问题描述】:

我正在一个包含 3 个任务管理器(在 3 个 Kubernetes pod 之上)的集群上运行 Flink 作业。 Job 的默认并行度为 9,其中一个运算符设置为并行度 18。 Job的任务槽数设置为18(最大并行值)。

我观察到以下行为:

设置为并行度 18 的算子平均分布在所有任务槽之间。

所有其他运算符(设置为默认值 - 9)不是平均分配的。例如:

  • TM1:运行 2 个子任务
  • TM2:运行 5 个子任务
  • TM3:运行 2 个子任务

有人可以解释一下吗 -

  • 是什么导致了这种分布不均?
  • 我可以控制要平衡的操作员分配吗?我该怎么做?

(使用 Flink v1.6.3 运行)

【问题讨论】:

    标签: apache-flink flink-streaming


    【解决方案1】:

    目前,Flink 不支持控制任务在不同TaskManagers 之间的分布方式。 Flink 假设所有 slot 都是相等的,因此不会尝试均匀地分散任务。不过,社区希望添加此功能。这是respective issue

    更新

    该问题已针对 Flink >= 1.9.2 修复。为了能够分散任务,您必须在您的flink-conf.yaml 中配置cluster.evenly-spread-out-slots: true

    【讨论】:

    • 只为关心的人,问题已经解决并关闭。从 1.9 开始,我们现在有一个选项 cluster.evenly-spread-out-slots。它不是默认激活的
    猜你喜欢
    • 1970-01-01
    • 2022-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多