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,其中一台...