【问题标题】:Flink job distribution over cluster nodes集群节点上的 Flink 作业分布
【发布时间】:2018-07-18 19:57:18
【问题描述】:

我们有 4 个作业在 3 个节点上运行,每个节点有 4 个插槽,

在 Flink 1.3.2 上,作业平均分布在每个节点上。 升级到 flink 1.5 后,每个作业都在单个节点上运行(如果没有剩余插槽,则结转到另一个节点)

有没有办法恢复均匀分布? 作业负载不均匀,这导致某些节点比其他节点更努力地工作。

【问题讨论】:

  • 出于好奇:为什么某些节点的负载较高会很重要?理论上,如果您正确定义插槽数,您将不会过度分配工作,因此不会影响性能。您使用的并行性似乎有太多节点。
  • 我有 4 个不同的作业,例如具有 3 个并行度的作业 1 在任务管理器 1 上运行,具有一半负载且相同并行度的作业 2 在任务管理器 2 上运行,任务管理器 1 将使用双倍资源量(CPU/内存)比 task manage 2 多,而在 flink 1.3.2 中,所有 task manager 使用了相同数量的资源,因为作业分布在所有 task manager 上(每个 task manager 一个)

标签: apache-flink flink-streaming


【解决方案1】:

我从 flink 邮件列表收到的答复 Re: Flink 1.5 job distribution over cluster nodes

嗨沙查尔,

在 Flink 1.5 中,我们增加了资源弹性。这意味着 Flink 是 现在能够在集群管理框架上分配新容器 像 Yarn 或 Mesos。由于这些变化(这也适用于 独立模式),Flink 不再需要固定的一组 TaskManagers 因为如果需要它会启动新的容器(不 在独立模式下工作)。因此,系统很难 做出有关分配属于单个作业的插槽的任何决定 跨多个 TM。当你考虑到这一点时,它变得更加困难 像您这样的一些工作可能会从这种策略中受益,而 其他人将受益于共同定位其插槽。它变得更加 如果您想对多个作业进行调度,这很复杂 系统没有完整的知识,因为它们是 依次提交。因此,Flink 目前假设 slot 任何 TaskManager 都可以满足请求。

干杯,直到

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-24
    • 2014-06-28
    • 1970-01-01
    • 1970-01-01
    • 2018-02-11
    相关资源
    最近更新 更多