storm學習筆記(一)

2021-08-07 09:44:30 字數 2638 閱讀 3853

1、storm介紹

storm特點:

:storm保障每個訊息至少能得到一次完整處理。任務失敗時,它會負責從訊息源重試訊息

:系統的設計保證了訊息能夠得到快速的處理,使用ømq作為其底層訊息佇列

2、總體架構

storm中涉及的術語

3、storm在zookeeper中的資料存貯及使用

(1)存貯

/storm/workbeats//node-port:它存貯了由node和port指定的worker的執行狀態和一些統計資訊。主要包括storm-id(topology-id)、當前worker上所有的executor的統計資訊(如傳送的訊息數目、

接收的訊息數目等)、當前worker的啟動時間以及最後一次更新這些資訊的時間。在乙個topology-id下面,可能有多個node-port節點,他的內容在執行過程中會被更新

/storm/storms/topology-id:它存貯topology本身的資訊,包括它的名字、啟動時間、執行狀態、要使用的worker的數量以及每個組建的並行度設定。它的內容在執行過程中是不變的

/storm/assignments/topology-id:它存貯了nimbus為每個topolog分配的任務資訊,包括該topology在nimbus機器本地的存貯目錄,被分到的supervisor機器到主機名的對映關係,每個executor執行

在哪個worker上以及每個executor的啟動時間。該節點的資訊在執行過程中會被更新

/storm/supervisor/topology-id:它存貯了 supervisor機器本身的執行統計資訊,主要包括最近一次更新時間、主機名、supervisor-id、已經使用的埠列表、所有的埠列表以及執行時間,該節點的資料在執行

過程中也會被更新

/storm/errors/topology-id/componemt-id/sequential-id:它存貯了執行過程中每個元件上發生的錯誤資訊,sequential-id是乙個遞增的序列號,每個元件最多隻會儲存最近的10條錯誤資訊,它的內容在執行過程

中是不變的(但是有可能被刪除)

(2)storm和zk的資料互動

nimbus建立時會建立以下三個節點:

a、/storm/workbeats/topology-id

b、/storm/storms/topology-id

c、/storm/assignments/topology-id

其中對於nimbus只會建立目錄不會設定資料(資料是worker設定的),b和c在建立的同時設定資料。a和b只有再提交新的topology的時候才會建立,並且b中的資料設定完後就不會再變化,

c是再第一次為該topology分配任務的時候建立,若任務分配計畫有變,nimbus就會更新它的內容

nimbus從zk中獲取資料時的路徑,包括:

a、/storm/workbeats/topology-id

b、/storm/supervisor/topology-id

c、/storm/errors/topology-id

nimbus需要從路徑a中讀取當前已被分配的worker的執行狀態。根據該資訊可以得知worker的狀態以及worker下面所有executor的統計資訊,這些資訊會通過ui呈現給使用者。

從路徑b可以獲取所有的supervisor的狀態,當有supervisor不再活躍時會將它的任務分配到其它的空閒的supervisor上去。

從路徑c中獲取所有的錯誤資訊並通過ui呈現給使用者

storm集群中的機器數量時可以動態增減,當機器增減的時候會引起zookeeper中元資料的變化,nimbus通過從zk中讀取這些元資料不斷地調整任務分配,所以storm具有良好的可擴充套件性。

當nimbus掛掉時,其他的節點時可以繼續工作的,但是不能提交新的topology,也不能重新進行任務的分配和負載調整,因此目前nimbus存在單點的問題

2、supervisor

supervisor除了zk'來建立和獲取元資料外,還可以監控制定的本地檔案來檢測有它啟動的所有的worker的狀態。

3、worker

4、executor

executor只會利用zk來記錄錯誤資訊

5、總結

storm學習筆記

1 基礎概念 元組 訊息傳遞的基本單元,支援所有的基本型別 字串和位元組陣列作為字段值。流 流由元組組成,spout是流的源頭從外部資料來源讀取元組並emit到拓撲中,bolt接收任何數量的輸入流執行處理後可能提交新的流。spout spout是拓撲的流的 是乙個拓撲中產生源資料流的元件。spout...

storm學習筆記

1.storm簡介 a storm是乙個開源免費的分布式實時計算系統,它可以輕鬆的處理無界的資料流。b storm只負責資料的計算,不負責資料的儲存。2.storm應用場景 3.storm的核心技術組成 a topology 拓撲 乙個拓撲是乙個圖的計算,乙個拓撲是由若干個spout,bolt組成 ...

storm學習筆記

一,概述 storm用來實時計算源源不斷產生的資料,如同流水線生產。storm用來實時處理資料,特點 低延遲 高可用 分布式 可擴充套件 資料不丟失。提供簡單容易理解的介面,便於開發。二,storm和hadoop的區別 storm用於實時計算,hadoop用於離線計算。storm處理的資料儲存在記憶...