簡體   English   中英

Apache Flink:每台機器的TaskManagers數量

[英]Apache Flink: number of TaskManagers per machine

每台機器的CPU核心數為4。 在flink獨立模式下,如何設置每台機器上的TaskManagers數量?

  1. 1 TaskManager,每個TaskManager有4個插槽。
  2. 2個TaskManager,每個TaskManager有2個插槽。
  3. 4個TaskManager,每個TaskManager有1個插槽。 這個設置就像apache-storm。

通常,每個服務器都有一個TaskManager,並且(根據bupt_ljy引用的文檔)每個物理CPU核心有一個插槽。 所以我選擇你的選項#1。

還有Flink的調度算法的考慮。 我們經常遇到這樣的問題,即多個主機運行一個大型任務管理器,所有作業都被調度到一個主機,這可能導致負載問題。

我們最終為每個主機創建了多個較小的任務管理器,並且作業似乎分布得更好(盡管它們仍然經常聚集在一個節點上)。

所以,根據我的經驗,我會更傾向於4個任務管理器,每個1個插槽,或者可能在2個任務管理器上有2個插槽。

我認為這取決於你的申請。

在官方文檔Distributed Runtime Environment中 ,它說, 根據經驗,一個很好的默認任務槽數就是CPU核心數。 使用超線程,每個插槽然后需要2個或更多硬件線程上下文。

但是,如果您必須在應用程序中使用大量內存,那么在一個任務管理器中不需要太多插槽。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM