Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flink 在Flink中的每个工作者上设置taskmanager.numberOfTaskSlots_Apache Flink_Distributed Computing - Fatal编程技术网

Apache flink 在Flink中的每个工作者上设置taskmanager.numberOfTaskSlots

Apache flink 在Flink中的每个工作者上设置taskmanager.numberOfTaskSlots,apache-flink,distributed-computing,Apache Flink,Distributed Computing,我在一个独立的集群中工作。所有服务器都可以运行taskmanager.sh。 我的集群是异构的,具有不同的核心计数和内存。 我运行的代码(apachebeam-ParDo的)是一个python单线程操作 我想为每台服务器设置不同的任务插槽数量。如何让flink为不同的服务器运行不同的插槽 我应该为每台服务器启动多个taskmanager.sh吗 参考: 我还希望这一声明: A Flink cluster needs exactly as many task slots as the highes

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

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

我应该为每台服务器启动多个taskmanager.sh吗

参考:

我还希望这一声明:

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.

表示插槽总数(即大致为#主机*#核心/主机)。我的理解正确吗?

通常建议每个taskmanager运行一个插槽作为起点(特别是在集装箱化环境中,尽管听起来不像您的情况)。这提供了更好的隔离,并使堆大小更小,从而将GC影响降至最低。不过,在某些情况下,随着您规模的扩大,让作业经理协调这么多的TM变得不可行,您最好在每个TM上运行多个插槽


此外,调度器只考虑插槽,而不是TMs,因此您希望保持插槽在资源方面的一致性。一个典型的起点是在每台机器上分配尽可能多的插槽,尽管对于计算密集型工作负载,您可能希望每个插槽有更多的内核。对于需要很少CPU的工作负载,可以转向另一个方向,分配比内核更多的插槽。

在我的情况下,我可能有一台主机有4个内核,另一台主机有16个内核。我可以在一个上分配4个插槽,在另一个上分配16个插槽吗?“nots”是一个全局设置。是的,您不必在每台机器上都安装任何相同的flink-conf.yaml文件。任务管理器上的插槽数是否可能超过CPU内核数?我的任务不是CPU密集型的,所以我不需要更多的CPU内核,只是想为每个任务管理器添加更多的插槽,而不是添加更多的任务管理器。是的,有时候这是一个好方法。我已经扩展了我的答案,把那个案例也包括在内。