如果任务槽的数量大于任务管理器vcores的数量怎么办

时间:2020-08-25 07:56:13

标签: apache-flink

我已经在yaml配置文件中设置了yarn.container.vcores=1,并且用...启动了flink集群

yarn-session.sh -jm 1024 -tm 2048 -n 4 -s 3

使用上述命令,我启动了4个任务管理器,每个TM仅分配了1个vcore,每个TM具有3个任务槽。

假设我在TM中运行3个子任务,则每个任务槽都拥有一个子任务。

这3个子任务可以与3个线程同时运行(使用3个cpu内核,vcore = 1无效)还是仅与一个线程同时运行(vcore = 1生效)

1 个答案:

答案 0 :(得分:2)

每个任务将有其自己的JVM线程,而不管有多少内核可用。如果任务管理器具有3个插槽和1个vcore,那就很好。在这些插槽中运行的任务只会争夺TM可用的资源。

请注意,通常您将在一个插槽中运行多个子任务(或任务-tasks and subtasks are really the same thing)。对于每个任务槽中只有一个子任务,要么是工作非常简单(即,一个只有一个节点的工作图),要么您做了一些特殊的工作来隔离子任务。