每台机器的 CPU 内核数为 4。在 flink 独立模式下,我应该如何设置每台机器上的任务管理器数量?
- 1个任务管理器
- ,每个任务管理器有4个插槽。 2个任务管理器
- ,每个任务管理器有2个插槽。 4个任务管理器
- ,每个任务管理器有1个插槽。这个设置就像阿帕奇风暴。
每台服务器都有一个任务管理器,并且(根据bupt_ljy引用的文档)每个物理 CPU 内核一个插槽。所以我会选择你的选项#1。
Flink 调度算法的考虑。我们经常遇到这样的问题:当多个主机运行一个大型任务管理器时,所有作业都会调度到一个主机,这可能会导致负载问题。
我们最终为每个主机制作了多个较小的任务管理器,并且作业似乎分布得更好(尽管它们仍然经常聚集在一个节点上)。
因此,根据我的经验,我更倾向于 4 个任务管理器,每块 1 个插槽,或者可能妥协 2 个任务管理器,每个插槽 2 个。
我认为这取决于您的应用程序。
在官方文件中 分布式运行时环境,它说 根据经验,一个好的默认任务槽数是 CPU 内核数。使用超线程时,每个插槽随后采用 2 个或更多硬件线程上下文。
但是,如果您必须在应用程序中使用大量内存,那么在一个任务管理器中不需要太多插槽。