在Flask中为每个工人设置taskmanager.numberOfTaskSlots

问题描述 投票:0回答:1

我正在一个独立的集群中工作。所有服务器都可以运行taskmanager.sh。我的集群是异构的,具有不同的核心数量和内存。我运行的代码(Apache Beam ParDo的代码)是python单线程操作。

我想将每个服务器的任务插槽数量设置为不同。如何让flink在不同的插槽上运行不同的服务器?

我应该改为在每个服务器上启动多个taskmanager.sh吗?

参考:https://stackoverflow.com/a/54117789/2184122

我也希望这句话:

A Flink cluster needs exactly as many task slots as the highest parallelism
used in the job. No need to calculate how many tasks (with varying parallelism)
a program contains in total.

平均总计个插槽数(即大约#Hosts *#Cores / host)。我的理解正确吗?

apache-flink distributed-computing
1个回答
0
投票

通常建议每个任务管理器以一个插槽作为起点(尤其是在容器化环境中,尽管听起来并不像您的情况)。这样可以提供更好的隔离性,并使堆大小更小,从而最大程度地减少GC影响。但是,在某些时候,随着规模的扩大,让工作经理协调如此多的TM变得不可行,并且最好在每个TM上运行多个插槽。

此外,调度程序仅根据插槽而不是TM进行思考,因此您希望使插槽在资源方面保持统一。一个典型的起点是为每台计算机分配与内核数量一样多的插槽,尽管对于计算密集型工作负载,您可能希望每个插槽拥有更多的内核。

© www.soinside.com 2019 - 2024. All rights reserved.