Apache flink 为什么Flink框架没有';你不能使用所有可用的插槽吗?数据集是否应位于每个taskmanager中?

Apache flink 为什么Flink框架没有';你不能使用所有可用的插槽吗?数据集是否应位于每个taskmanager中?,apache-flink,Apache Flink,我使用的是虚拟机,我的集群由3个taskmanager组成,主任务是jobmanager和taskmanager(4个taskmanager和一个jobmanager),所以 当我运行jar文件时,它只使用了一个插槽,我有4个插槽,大约一个插槽用于一个任务管理器,我不知道为什么框架没有使用所有可用的插槽。 我想知道数据集是否应该在每个taskmanager中?您的问题的答案在某种程度上取决于您使用的群集管理器(例如,Thread、mesos、kubernetes或standalone),但通常F

我使用的是虚拟机,我的集群由3个taskmanager组成,主任务是jobmanager和taskmanager(4个taskmanager和一个jobmanager),所以 当我运行jar文件时,它只使用了一个插槽,我有4个插槽,大约一个插槽用于一个任务管理器,我不知道为什么框架没有使用所有可用的插槽。
我想知道数据集是否应该在每个taskmanager中?

您的问题的答案在某种程度上取决于您使用的群集管理器(例如,Thread、mesos、kubernetes或standalone),但通常Flink不支持自动缩放,因此您需要明确配置所需的并行性。您可以在作业的源代码、flink-conf.yaml或命令行中执行此操作。如果不这样做,则作业将以默认并行方式运行


至于应该将数据放在哪里,flink应用程序将使用源连接器读取数据。如果您使用文件系统作为数据源,那么每个taskmanager都需要能够使用相同的文件系统URI读取数据——这最好通过使用分布式文件系统来实现。

对不起,我是这个领域的新手,我使用的是一个独立的集群管理器,因此如何配置所需的并行性,以及配置应该在每个taskmanager中还是仅在jobmanager中。我没有为数据源使用分布式文件系统,所以我应该将数据放在每个taskmanager中,不是吗?在提交作业时指定并行度可能是最容易的,但您可以在任何地方设置默认并行度--在作业管理器和每个taskmanager中。文档应该会有帮助:抱歉,我无法在flink-conf.ymal或命令行中调整并行性。我收到错误:由以下原因引起:org.apache.flink.runtime.jobmaster.exceptions.JobModificationException:无法重新缩放作业CSVInteger(WikiTalk.txt)⇨ PageRank⇨ 印刷品。如果我将并行度设置为多个默认值,则会出现错误,如果我将TaskSlot增加到与并行度相等,则不会出现错误,但作业只使用一个taskmanager