Storm元資料總體互動

2021-08-27 22:26:44 字數 1422 閱讀 3013

storm採用zookeeper儲存nimbus、supervisor、worker以及executor之間共享的元資料,模組重啟之後可以通過對應元資料恢復,所以storm是無狀態的。

儲存由node和port指定worker的執行狀態和一些統計資訊。 

包括:topologyid、worker上executor統計資訊(傳送訊息數,接收訊息數等)、worker啟動時間、最後一次更新時間。 

儲存topology的本身資訊:名字、啟動時間、執行狀態、要使用的worker數以及元件並行度設定,執行過程中不會變化。 

儲存任務分配資訊:topology在nimbus的儲存目錄、分配到supervisor機器到主機名的對映關係、每個executor執行在哪個worker以及每個worker的啟動時間。執行過程中資料會變化。 

儲存supervisor機器本身執行統計資訊:最近一次更新時間、主機名、supervisorid、已經使用的埠列表、所有埠列表以及執行時間。執行過程中資料會變化。 

儲存執行過程中每個元件發生的錯誤資訊,sequential_id是遞增的序列號,每乙個元件最多隻會保留最近的10條錯誤資訊,他執行過程中是不會變,可能會被刪除。  

nimbus既需要在zookeeper建立元資料,也需要從zookeeper中獲取資料。

箭頭1表示由nimbus建立的路徑:

a. /storm/workerbeats/$topology_id

b. /storm/storms/$topology_id

c. /storm/assignments/$topology_id

nimbus提交資料時會建立a、b路徑,a路徑不寫資料,b路徑會寫資料;

nimbus分配任務時會建立c路徑的同時設定資料,任務分配計畫有變,nimbus會更新內容。

箭頭2表示由nimbus需要獲取資料的路徑:

a. /storm/workerbeats/$topology_id/$node_port

b. /storm/supervisors/$supervisor_id

c. /storm/errors/$topoloty_id/$component_id/$sequential_id

nimbus從a路徑讀取當前已經被分配的worker的執行狀態,根據worker狀態確定是否需要重新排程,還

可以  獲取到該worker的executor的執行統計資訊。

路徑b獲取集群supervisor的的狀態,通過這些資訊確認哪些空閒資源可用,哪些supervisor不再活躍,

需要分配到其他節點上。

路徑c資料通過storm ui提供給使用者看。

/storm/errors/$topology_id/$component_id/$sequential_id

大資料(Storm) 安裝

tar xzvf apache storm 0.9 6.tar.gz 0.9 6 usr local storm export storm home usr local storm export path path storm home bin source etc profile storm ho...

storm實時消費kafka資料

原創 2017年06月05日 16 30 15 程式的pom.xml檔案 org.apache.stormgroupid storm coreartifactid 1.0.2version providedscope dependency org.apache.stormgroupid storm ...

大資料架構之 Storm

storm是乙個免費開源 分布式 高容錯的實時計算系統,twitter開發貢獻給社群的。storm令持續不斷的流計算變得容易,彌補了hadoop批處理所不能滿足的實時要求。特點 1 storm這是乙個分布式的 容錯的實時計算系統 2 storm集群主要由乙個主節點 master node 和一組工作...