簡體   English   中英

1個TaskManager 3個slot和Apache Flink中3個TaskManager 1個slot是一樣的嗎

[英]Is one TaskManager with three slots the same as three TaskManagers with one slot in Apache Flink

在 Flink 中,據我了解,如果需要,JobManager 可以將一個作業分配給具有多個槽的多個 TaskManager。 例如,一個作業可以分配三個 TaskManager,使用五個槽。

現在,假設我執行一個具有三個插槽的 TaskManager(TM),分配給 3G RAM 和一個 CPU。

這和執行三個TaskManager,共享一個CPU,每一個分配1G RAM完全一樣嗎?

case 1
---------------
| 3G RAM      |
| one CPU     |
| three slots |
| TM          |
---------------

case 2
--------------------------------------------|
|              one CPU                      |
|  ------------  ------------ ------------  |
|  | 1G RAM   |  | 1G RAM   | | 1G RAM   |  |
|  | one slot |  | one slot | | one slot |  |
|  | TM       |  | TM       | | TM       |  |
|  ------------  ------------ ------------  |
--------------------------------------------|

性能和操作上的差異會影響兩個方向。

當在非容器化環境中運行時,使用 RocksDB state 后端,每台機器有一個 TM,有很多槽是有意義的。 這將最小化每個 TM 的開銷。 然而,每個 TM 的開銷並不那么重要。

另一方面,每個 TM 使用一個插槽運行提供了一些有用的隔離,並減少了垃圾收集的影響,這與基於堆的 state 后端特別相關。

對於容器化部署,通常建議每個 TM 一個插槽到 go,直到達到一定規模,此時您將希望通過為每個 TM 添加更多插槽而不是更多 TM 來擴展。 問題是檢查點協調器需要與每個 TM 協調(但不是與每個槽),並且隨着 TM 的數量達到數百或數千,這可能成為瓶頸。

暫無
暫無

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

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