最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談Storm在zookeeper上的目錄結(jié)構(gòu)

 更新時間:2017年10月16日 08:33:48   作者:不懂  
這篇文章主要介紹了淺談Storm在zookeeper上的目錄結(jié)構(gòu)的相關(guān)內(nèi)容,涉及storm使用zookeeper的操作以及詳細(xì)結(jié)構(gòu)圖,具有一定參考價值,需要的朋友可以了解下。

Storm的所有的狀態(tài)信息都保存在Zookeeper里面,nimbus通過在zookeeper上面寫狀態(tài)信息來分配任務(wù):

使得nimbus可以監(jiān)控整個storm集群的狀態(tài),從而可以重啟一些掛掉的task。 ZooKeeper使得整個storm集群十分的健壯-—任何一臺工作機器掛掉都沒有關(guān)系,只要重啟然后從zookeeper上面重新獲取狀態(tài)信息就可以了。那Storm在zookeeper里面存儲了哪些狀態(tài)呢?在James Xu的文章中有所涉及,但是該文章講述的已經(jīng)過時了。本文主要介紹Storm在ZooKeeper中保存的數(shù)據(jù)目錄結(jié)構(gòu),源代碼主要是:backtype.storm.cluster。

關(guān)于storm操作zookeeper的詳細(xì)分析請參見:源碼閱讀之storm操作zookeeper-cluster.clj

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 -> 任務(wù)分配信息
2./storms -> 正在運行的topology的ID
3./supervisors -> 所有的Supervisors的心跳信息
4./workerbeats -> 所有的Worker的心跳
5./errors -> 產(chǎn)生的出錯信息

結(jié)構(gòu)圖

/-{storm-zk-root}      -- storm在zookeeper上的根目錄(默認(rèn)為/storm)
 |
 |-/assignments      -- topology的任務(wù)分配信息
 |  |
 |  |-/{topology-id}   -- 這個目錄保存的是每個topology的assignments信息包括:對應(yīng)的nimbus上
 |             -- 的代碼目錄,所有task的啟動時間,每個task與機器、端口的映射。操作為
 |             -- (assignments)來獲取所有assignments的值;以及(assignment-info storm-id)
 |             -- 來得到給定的storm-id對應(yīng)的AssignmentInfo信息
 |             -- 在AssignmentInfo中存儲的內(nèi)容有:
 |             -- :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的狀態(tài)。操作(active-storms),獲得當(dāng)前路徑活躍的下
 |             -- topology數(shù)據(jù)。保存的內(nèi)容參考類StormBase;(storm-base storm-id)得到給定的
 |             -- storm-id下的StormBase數(shù)據(jù),具體定義在common.clj中的
 |   -- (defrecord StormBase [storm-name launch-time-secs status num-workers component->executors])
 |
 |-/supervisors      -- 這個目錄保存所有的supervisor的心跳信息
 |  |            
 |  |
 |  |-/{supervisor-id}  -- 這個文件保存supervisor的心跳信息包括:心跳時間,主機名,這個supervisor上
 |             -- worker的端口號,運行時間(具體看SupervisorInfo類)。操作(supervisors)得到
 |             -- 所有的supervisors節(jié)點;(supervisor-info supervisor-id)得到給定的
 |             -- supervisor-id對應(yīng)的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運行時間以及一些統(tǒng)計信息
 |                    
 |                 -- 操作(heartbeat-storms)得到所有有心跳數(shù)據(jù)的topology,
 |                 -- (get-worker-heartbeat storm-id node port)得到具體一個topology下
 |                 -- 的某個worker(node:port)的心跳狀況,
 |             -- (executor-beats storm-id executor->node+port)得到一個executor的心跳狀況
 |
 |-/errors         -- 所有產(chǎn)生的error信息
 |
 |-/{topology-id}      -- 這個目錄保存這個topology下面的錯誤信息。操作(error-topologies)得到出錯
   |           -- 的topology;(errors storm-id component-id)得到
   |           -- 給定的storm-id component-id下的出錯信息
   |-/{component-id}

總結(jié)

以上就是本文關(guān)于淺談Storm在zookeeper上的目錄結(jié)構(gòu)的全部內(nèi)容,感興趣的朋友可以參閱:apache zookeeper使用方法實例詳解、為zookeeper配置相應(yīng)的acl權(quán)限、zookeeper watch機制的理解等,如有不足之處,歡迎留言指出,希望對大家有所幫助。感謝朋友們對本站的支持!

相關(guān)文章

  • java單鏈表實現(xiàn)書籍管理系統(tǒng)

    java單鏈表實現(xiàn)書籍管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了java單鏈表實現(xiàn)書籍管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • Java實現(xiàn)字符串轉(zhuǎn)為駝峰格式的方法詳解

    Java實現(xiàn)字符串轉(zhuǎn)為駝峰格式的方法詳解

    這篇文章主要介紹了如何利用Java語言實現(xiàn)字符串轉(zhuǎn)為駝峰格式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2022-07-07
  • 淺談Java中Unicode的編碼和實現(xiàn)

    淺談Java中Unicode的編碼和實現(xiàn)

    這篇文章向大家介紹了Java編程中Unicode編碼及實現(xiàn)的相關(guān)內(nèi)容,列舉了幾個字符不同表達(dá)式的比較,以及Unicode平面映射的知識,具有一點點參考價值,需要的朋友可以了解下。
    2017-10-10
  • springboot配置ssl后啟動一直是端口被占用的解決

    springboot配置ssl后啟動一直是端口被占用的解決

    這篇文章主要介紹了springboot配置ssl后啟動一直是端口被占用的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • Java?IO及BufferedReader.readline()出現(xiàn)的Bug

    Java?IO及BufferedReader.readline()出現(xiàn)的Bug

    這篇文章主要介紹了Java?IO及BufferedReader.readline()出現(xiàn)的Bug,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • 使用dom4j實現(xiàn)xml轉(zhuǎn)map與xml轉(zhuǎn)json字符串

    使用dom4j實現(xiàn)xml轉(zhuǎn)map與xml轉(zhuǎn)json字符串

    這篇文章主要為大家詳細(xì)介紹了如何使用dom4j實現(xiàn)xml轉(zhuǎn)map與xml轉(zhuǎn)json字符串功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下
    2024-11-11
  • jdk21環(huán)境配置詳細(xì)步驟記錄

    jdk21環(huán)境配置詳細(xì)步驟記錄

    JDK是整個Java開發(fā)的核心,它包含了Java的運行環(huán)境和Java工具,這篇文章主要給大家介紹了關(guān)于jdk21環(huán)境配置的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • 在Docker中部署Spring Boot項目過程詳解

    在Docker中部署Spring Boot項目過程詳解

    這篇文章主要介紹了在Docker中部署Spring Boot項目,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-08-08
  • SpringSecurity整合JWT的使用示例

    SpringSecurity整合JWT的使用示例

    本文主要介紹了SpringSecurity整合JWT的使用示例,整合Spring?Security和JWT,可以使我們的應(yīng)用程序更加安全和高效,感興趣的可以了解一下
    2023-11-11
  • Java 設(shè)置Excel條件格式示例代碼(高亮條件值、應(yīng)用單元格值/公式/數(shù)據(jù)條等類型)

    Java 設(shè)置Excel條件格式示例代碼(高亮條件值、應(yīng)用單元格值/公式/數(shù)據(jù)條等類型)

    這篇文章主要介紹了Java 設(shè)置Excel條件格式示例代碼(高亮條件值、應(yīng)用單元格值/公式/數(shù)據(jù)條等類型),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01

最新評論

宜兴市| 桦川县| 南陵县| 桂林市| 张家界市| 蕲春县| 太保市| 阿勒泰市| 娄底市| 巫山县| 郁南县| 修文县| 崇阳县| 濮阳市| 含山县| 精河县| 西华县| 海门市| 连山| 南部县| 利津县| 新巴尔虎右旗| 东乌| 临沭县| 陆良县| 乐亭县| 磐安县| 封丘县| 咸阳市| 大丰市| 开封市| 渑池县| 屯昌县| 五指山市| 瓮安县| 金塔县| 佛坪县| 长武县| 泸溪县| 文水县| 怀远县|