您好,登錄后才能下訂單哦!
Storm在Zookeeper中的結構是怎樣的,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
Storm在Zookeeper中的保存
簡介:
我們知道,Twitter Storm的所有狀態信息都是保存在Zookeeper 之中的,在前面的有關kafka的文章之中,我們知道kafka也將信息保存在Zookeeper之中,還有其他類似的組件:如double,hbase等。存在對Zookeeper的依賴。
細節:
nimbus通過在Zookeeper上面寫狀態信息來分配任務,Supervisor,task通過Zookeeper中讀取狀態來領取自己的任務,與此同時Nimbus在不斷的讀取 Supervisor,task發送給nimbus的心跳信號,以便能夠準確的監控到集群的狀態。從而可以重新來啟動一些 ”掛掉“的任務。
具體的源代碼是 backtype.storm.cluster
/-{storm-zk-root} -- storm在zookeeper上的根 | 目錄 | |-/assignments -- topology的任務分配信息 | | | |-/{topology-id} -- 這個下面保存的是每個 | topology的assignments | 信息包括: 對應的 | nimbus上的代碼目錄,所有 | task的啟動時間, | 每個task與機器、端口的映射 | |-/tasks -- 所有的task | | | |-/{topology-id} -- 這個目錄下面id為 | | {topology-id}的topology | | 所對應的所有的task-id | | | |-/{task-id} -- 這個文件里面保存的是這個 | task對應的component-id: | 可能是spout-id或者bolt-id | |-/storms -- 這個目錄保存所有正在運行 | | 的topology的id | | | |-/{topology-id} -- 這個文件保存這個topology | 的一些信息,包括topology的 | 名字,topology開始運行的時 | 間以及這個topology的狀態 | (具體看StormBase類) | |-/supervisors -- 這個目錄保存所有的supervisor | | 的心跳信息 | | | |-/{supervisor-id} -- 這個文件保存的是supervisor | 的心跳信息包括:心跳時間,主 | 機名,這個supervisor上worker | 的端口號運行時間 | (具體看SupervisorInfo類) | |-/taskbeats -- 所有task的心跳 | | | |-/{topology-id} -- 這個目錄保存這個topology的所 | | 有的task的心跳信息 | | | |-/{task-id} -- task的心跳信息,包括心跳的時 | 間,task運行時間以及一些統計 | 信息 | |-/taskerrors -- 所有task所產生的error信息 | |-/{topology-id} -- 這個目錄保存這個topology下面 | 每個task的出錯信息 | |-/{task-id} -- 這個task的出錯信息
看完上述內容,你們掌握Storm在Zookeeper中的結構是怎樣的的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。