如何在不同的任务管理器中指定我的 flink 作业 运行 的那部分
How can I specify that parts of my flink job run in different taskmanagers
我有一个包含多个任务管理器的集群。每个任务经理(每个 TM 1 个任务槽)运行从事不同类型的工作。
我有一个由阶段组成的特定工作,运行s 在 1 个任务管理器中(没有重新平衡,因此图优化器将所有内容合并到同一个线程中)我希望他们的 3 个操作员 运行 在 3 个不同的任务管理器中,我该如何设置?
您正在寻找的机制是 slot sharing groups。这将允许您将管道的每个阶段强制放入其自己的槽中。
如果您禁用运算符链接(env.disableOperatorChaining()
将强制每个管道阶段进入其自己的线程)然后 运行 在使用 2 或每个插槽 3 CPU 个内核。使用此配置,您将使用共享内存而不是网络在阶段之间进行通信。
我有一个包含多个任务管理器的集群。每个任务经理(每个 TM 1 个任务槽)运行从事不同类型的工作。
我有一个由阶段组成的特定工作,运行s 在 1 个任务管理器中(没有重新平衡,因此图优化器将所有内容合并到同一个线程中)我希望他们的 3 个操作员 运行 在 3 个不同的任务管理器中,我该如何设置?
您正在寻找的机制是 slot sharing groups。这将允许您将管道的每个阶段强制放入其自己的槽中。
如果您禁用运算符链接(env.disableOperatorChaining()
将强制每个管道阶段进入其自己的线程)然后 运行 在使用 2 或每个插槽 3 CPU 个内核。使用此配置,您将使用共享内存而不是网络在阶段之间进行通信。