Apache flink Apache Flink:每台机器的TaskManager数量

Apache flink Apache Flink:每台机器的TaskManager数量,apache-flink,Apache Flink,每台机器的CPU核心数是四个。在flink独立模式下,我应该如何设置每台机器上TaskManager的数量 1个TaskManager,每个TaskManager有4个插槽 2个TaskManager,每个TaskManager有2个插槽 4个TaskManager,每个TaskManager有1个插槽。此设置类似于apache storm 我想这取决于你的申请 在官方文件中,它说作为一个经验法则,一个好的默认任务槽数量应该是CPU核心的数量。使用“超线程”,每个插槽将占用2个或更多硬件线程上下

每台机器的CPU核心数是四个。在flink独立模式下,我应该如何设置每台机器上TaskManager的数量

  • 1个TaskManager,每个TaskManager有4个插槽
  • 2个TaskManager,每个TaskManager有2个插槽
  • 4个TaskManager,每个TaskManager有1个插槽。此设置类似于apache storm

  • 我想这取决于你的申请

    在官方文件中,它说作为一个经验法则,一个好的默认任务槽数量应该是CPU核心的数量。使用“超线程”,每个插槽将占用2个或更多硬件线程上下文。


    但是,如果您的应用程序必须使用大量内存,那么您不需要在一个任务管理器中使用太多的插槽。

    通常情况下,每个服务器都有一个任务管理器,并且(根据bupt_ljy引用的文档)每个物理CPU核心都有一个插槽。所以我同意你的选择#1。

    还有对Flink调度算法的考虑。我们经常遇到这样的问题:当多台主机一块运行一个大型任务管理器时,所有作业都调度到一台主机上,这可能会导致负载问题

    我们最终为每台主机制作了多个较小的任务管理器,并且作业似乎分布得更好(尽管它们仍然经常聚集在一个节点上)

    因此,根据我的经验,我更倾向于4个任务管理器,每个任务有1个插槽,或者可能在2个任务管理器中妥协,每个任务有2个插槽