Storm的一個topology的執行過程中有以下幾個成員參與:
從圖中可以看出,
①當supervisor接收到topology任務的時候,他會分配worker去執行。supervisor與node伺服器節點之間是對應關係,supervisor與worker是一對多的關係,即一個supervisor上有一個或者多個worker,但是每個worker只屬於一個supervisor。所以一個topology可以被分配到一個或者多個worker上執行。
②worker是執行在jvm虛擬機器上的一個程序process,而一個node節點上又可以執行多個jvm程序。我們知道一個程序是可以有多個執行緒的,一個worker下又可以執行一個或者多個executor。
③預設情況下一個executor與task之間是一對一的,也可以透過設定executor對多個task,但是一個task只能有一個executor執行。每個task才是對應到具體的一個spout或者一個bolt。task是實際執行資料處理的最小單元。
注意:
Task數量在整個Topology生命週期中保持不變,Executor數量可以變化或手動調整
設定Worker程序數
設定Executor執行緒數
設定Task數量
Rebalance – 再平衡
當多了或者少了一些node節點的時候,可以透過rebalance來動態的調整平衡topology的worker數量、Executor執行緒數量
有兩種方式:
1、透過Storm UI
2、透過Storm CLI
透過ui可以直接在前端介面上更改
透過cli動態可以用下面的命令:
Storm的一個topology的執行過程中有以下幾個成員參與:
從圖中可以看出,
①當supervisor接收到topology任務的時候,他會分配worker去執行。supervisor與node伺服器節點之間是對應關係,supervisor與worker是一對多的關係,即一個supervisor上有一個或者多個worker,但是每個worker只屬於一個supervisor。所以一個topology可以被分配到一個或者多個worker上執行。
②worker是執行在jvm虛擬機器上的一個程序process,而一個node節點上又可以執行多個jvm程序。我們知道一個程序是可以有多個執行緒的,一個worker下又可以執行一個或者多個executor。
③預設情況下一個executor與task之間是一對一的,也可以透過設定executor對多個task,但是一個task只能有一個executor執行。每個task才是對應到具體的一個spout或者一個bolt。task是實際執行資料處理的最小單元。
注意:
Task數量在整個Topology生命週期中保持不變,Executor數量可以變化或手動調整
設定Worker程序數
設定Executor執行緒數
設定Task數量
Rebalance – 再平衡
當多了或者少了一些node節點的時候,可以透過rebalance來動態的調整平衡topology的worker數量、Executor執行緒數量
有兩種方式:
1、透過Storm UI
2、透過Storm CLI
透過ui可以直接在前端介面上更改
透過cli動態可以用下面的命令: