Apache flink 如何在flink 1.9.0或最新版本中增加TaskManager的数量

Apache flink 如何在flink 1.9.0或最新版本中增加TaskManager的数量,apache-flink,flink-streaming,Apache Flink,Flink Streaming,我在flink的工作中有1452项独立任务。它读自卡夫卡。然后使用flatmap进行一些转换,然后放入hdfs文件。卡夫卡和flatmap的并行度各为20,我有1450个独立的接收器,每个接收器的并行度为1。因为这里的最大并行度是20。当我为每个TaskManager使用4个插槽时,Flink仅创建5个TaskManager。由于工作中的总任务数非常高,我需要创建更多的任务管理器 到目前为止,我正在为其中一个接收任务提供更多的并行性(100),以便获得所需数量的taskmanager(这不是一种

我在flink的工作中有1452项独立任务。它读自卡夫卡。然后使用flatmap进行一些转换,然后放入hdfs文件。卡夫卡和flatmap的并行度各为20,我有1450个独立的接收器,每个接收器的并行度为1。因为这里的最大并行度是20。当我为每个TaskManager使用4个插槽时,Flink仅创建5个TaskManager。由于工作中的总任务数非常高,我需要创建更多的任务管理器

到目前为止,我正在为其中一个接收任务提供更多的并行性(100),以便获得所需数量的taskmanager(这不是一种合适的方法),但这会导致所有接收任务(具有100个任务槽的任务除外)仅在一个taskmanager上创建,而remaning taskmanager则由其他任务使用


因此,我需要一些方法来实例化fink中所需数量的TaskManager,以及一些方法来将接收器任务分配到所有TaskManager。

隔离插槽并强制纱线提供额外任务管理器和插槽的最简单方法是用于您要隔离的操作。默认情况下,所有操作都放入
default
插槽共享组,因此您的所有任务共享同一个插槽

要执行此操作,只需在要隔离的运算符之后为不同的作业指定不同的插槽共享组:

strean
.op(…)
.slotSharingGroup(“job-N”)

您能澄清几点吗?1) 您的部署模式是什么-独立还是容器化?2) taskmanager的
flink-conf.yaml
当前设置是什么?3) 我的理解正确吗?你需要更多的插槽?谢谢。嘿@Mikalailushcytski,我在纱线簇上使用每作业(即集装箱化)模式。配置文件中没有TaskManager的设置。我们从cli参数中提供所需的详细信息(如所需的memeory、slots等)。是的,我需要更多的插槽(它不应该依赖于任务并行性)。你能分享作业图的样子吗?我不清楚发生了什么事。知道为什么有这么多不同的水槽也很有趣——我想可能没有必要。谢谢。我也想到了同样的方法。如果flink没有明确给出增加TaskManager的其他选项,我将尝试这个选项。这里的根本问题不是TaskManager的数量,而是操作员分配到插槽的方式。在共享插槽之前,在并行性满足之前,不会分配新插槽。您可以通过设置
-s1
-每个TaskManager的插槽数来人为地增加task Manager计数,但在您的情况下,这只会将task Manager计数增加到20。谢谢。到目前为止,这项工作还不错。我给每20个水槽任务一个固定的槽组。只是想知道如何将源子任务分配给不同的TaskManager。我想最大化源子任务和接收任务的同一位置。我已经提供了一个解决方法,但不确定它是否对您的情况有帮助。非常感谢。我试试这个。