zookeeper在storm集群中的應用

2021-08-07 19:20:28 字數 3369 閱讀 3970

1. 心跳檢測, 儲存supervisor和worker的心跳(包括它們的狀態),使得nimbus可以監控整個集群的狀態, 從而重啟一些掛掉的worker;

2. 提交任務

3. 儲存整個集群的所有狀態資訊, 供ui顯示

4. storm在zk上的儲存結構

/-           -- storm在zookeeper上的根目錄(預設為/storm)  

| |-/assignments -- topology的任務分配資訊

| |

| |-/ -- 這個目錄儲存的是每個topology的assignments資訊包括:對應的nimbus上

| -- 的**目錄,所有task的啟動時間,每個task與機器、埠的對映。操作為

| -- (assignments)來獲取所有assignments的值;以及(assignment-info storm-id)

| -- 來得到給定的storm-id對應的assignmentinfo資訊

| -- 在assignmentinfo中儲存的內容有:

| -- :executor->node+port :executor->start-time-secs :node->host

| -- 具體定義在common.clj中的

| -- (defrecord assignment[master-code-dir node->host executor->node+port executor->start-time-secs])

| |-/storms -- 這個目錄儲存所有正在執行的topology的id

| |

| |

| |-/ -- 這個檔案儲存這個topology的一些資訊,包括topology的名字,topology開始執行

| -- 的時間以及這個topology的狀態。操作(active-storms),獲得當前路徑活躍的下

| -- topology資料。儲存的內容參考類stormbase;(storm-base storm-id)得到給定的

| -- storm-id下的stormbase資料,具體定義在common.clj中的

| -- (defrecord stormbase [storm-name launch-time-secs status num-workers component->executors])

| |-/supervisors -- 這個目錄儲存所有的supervisor的心跳資訊

| |

| |

| |-/ -- 這個檔案儲存supervisor的心跳資訊包括:心跳時間,主機名,這個supervisor上

| -- worker的埠號,執行時間(具體看supervisorinfo類)。操作(supervisors)得到

| -- 所有的supervisors節點;(supervisor-info supervisor-id)得到給定的

| -- supervisor-id對應的supervisorinfo資訊;具體定義在common.clj中的

|

| -- (defrecord supervisorinfo [time-secs hostname assignment-id used-ports meta scheduler-meta uptime-secs])

| |-/workerbeats -- 所有worker的心跳

| |

| |-/ -- 這個目錄儲存這個topology的所有的worker的心跳資訊

| |

| |-/ -- worker的心跳資訊,包括心跳的時間,worker執行時間以及一些統計資訊

|

| -- 操作(heartbeat-storms)得到所有有心跳資料的topology,

| -- (get-worker-heartbeat storm-id node port)得到具體乙個topology下

| -- 的某個worker(node:port)的心跳狀況,

| -- (executor-beats storm-id executor->node+port)得到乙個executor的心跳狀況

| |-/errors -- 所有產生的error資訊

| |-/ -- 這個目錄儲存這個topology下面的錯誤資訊。操作(error-topologies)得到出錯

| -- 的topology;(errors storm-id component-id)得到

| -- 給定的storm-id component-id下的出錯資訊

|-/

storm搭建(1)zookeeper搭建

storm集群的安裝我用了三颱的虛擬機器,ip分別是192.168.9.202和203和204,其中主機是202,兩台分機的ip是203和204,之前兩台機器的搭建已經完成,這次安裝的環境是在204機器上。把zookeeper 3.3.5.tar.gz放在home資料夾下,給檔案加入許可權 chmo...

在storm中使用定時儲存

在storm中使用實時儲存會對效能帶來很大的考驗,所以在很多場景中還是使用定時儲存 而且storm自帶了定時功能,使用方式如下 首先在topo中的config中定義乙個通訊時間,定義方式如下 conf.put config.topology tick tuple freq secs,60 設定這個屬...

zookeeper在windows下安裝集群

一 單機配置把zookeeper 3.4.6 conf zoo sample.cfg修改為zoo.cfgzoo.cfg內容 ticktime 2000 zookeeper 伺服器之間或客戶端與伺服器之間維持心跳的時間間隔initlimit 5 zookeeper集群中的包含多台server,其中一台...