中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Storm在zookeeper上的操作和目錄結構

發布時間:2021-09-17 10:25:14 來源:億速云 閱讀:135 作者:chen 欄目:云計算

這篇文章主要講解了“Storm在zookeeper上的操作和目錄結構”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Storm在zookeeper上的操作和目錄結構”吧!

Zookeeper的操作

(defprotocol ClusterState
  (set-ephemeral-node [this path data])
  (delete-node [this path])
  (create-sequential [this path data])
  (set-data [this path data])  ;; if node does not exist, create persistent with this data 
  (get-data [this path watch?])
  (get-children [this path watch?])
  (mkdirs [this path])
  (close [this])
  (register [this callback])
  (unregister [this id])
  )

Storm使用Zookeeper的操作

(defprotocol StormClusterState
  (assignments [this callback])
  (assignment-info [this storm-id callback])
  (active-storms [this])
  (storm-base [this storm-id callback])
  (get-worker-heartbeat [this storm-id node port])
  (executor-beats [this storm-id executor->node+port])
  (supervisors [this callback])
  (supervisor-info [this supervisor-id])  ;; returns nil if doesn't exist
  (setup-heartbeats! [this storm-id])
  (teardown-heartbeats! [this storm-id])
  (teardown-topology-errors! [this storm-id])
  (heartbeat-storms [this])
  (error-topologies [this])
  (worker-heartbeat! [this storm-id node port info])
  (remove-worker-heartbeat! [this storm-id node port])
  (supervisor-heartbeat! [this supervisor-id info])
  (activate-storm! [this storm-id storm-base])
  (update-storm! [this storm-id new-elems])
  (remove-storm-base! [this storm-id])
  (set-assignment! [this storm-id info])
  (remove-storm! [this storm-id])
  (report-error [this storm-id task-id error])
  (errors [this storm-id task-id])
  (disconnect [this])
  )

Storm中在Zookeeper中存儲的目錄

(def ASSIGNMENTS-ROOT "assignments")
(def CODE-ROOT "code")
(def STORMS-ROOT "storms")
(def SUPERVISORS-ROOT "supervisors")
(def WORKERBEATS-ROOT "workerbeats")
(def ERRORS-ROOT "errors")

(def ASSIGNMENTS-SUBTREE (str "/" ASSIGNMENTS-ROOT))
(def STORMS-SUBTREE (str "/" STORMS-ROOT))
(def SUPERVISORS-SUBTREE (str "/" SUPERVISORS-ROOT))
(def WORKERBEATS-SUBTREE (str "/" WORKERBEATS-ROOT))
(def ERRORS-SUBTREE (str "/" ERRORS-ROOT))
  1. /assignments -> 任務分配信息

  2. /storms -> 正在運行的topology的ID

  3. /supervisors -> 所有的Supervisors的心跳信息

  4. /workerbeats -> 所有的Worker的心跳

  5. /errors -> 產生的出錯信息

結構圖

/-{storm-zk-root}           -- storm在zookeeper上的根目錄(默認為/storm)
  |
  |-/assignments            -- topology的任務分配信息
  |   |
  |   |-/{topology-id}      --  這個目錄保存的是每個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-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-id}    -- 這個文件保存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-id}              -- 這個目錄保存這個topology的所有的worker的心跳信息
  |       |
  |       |-/{supervisorId-port}    -- 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

感謝各位的閱讀,以上就是“Storm在zookeeper上的操作和目錄結構”的內容了,經過本文的學習后,相信大家對Storm在zookeeper上的操作和目錄結構這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

鹤岗市| 眉山市| 太仓市| 元谋县| 长兴县| 南溪县| 南木林县| 余干县| 北安市| 许昌县| 远安县| 太谷县| 宁河县| 凤凰县| 镶黄旗| 福贡县| 双鸭山市| 澜沧| 新干县| 丹棱县| 忻州市| 邵武市| 钦州市| 西城区| 旬邑县| 通道| 高尔夫| 台东县| 平乡县| 冀州市| 鹿泉市| 沙河市| 山阳县| 洪雅县| 五河县| 邯郸县| 大同县| 思茅市| 庆元县| 铁力市| 东阳市|