Storm 客戶端能讓我們使用命令管理集群中的拓撲。按照以下步驟安裝 Storm 客戶端:
從 Storm 站點下載最新的穩(wěn)定版本(https://github.com/nathanmarz/storm/downloads)當前最新版本是storm-0.8.1。(譯者注:原文是 storm-0.6.2,不過翻譯的時候已經(jīng)是 storm-0.8.1 了)
把下載的文件解壓縮到 /usr/local/bin/storm 的 Storm 共享目錄。
把 Storm 目錄加入 PATH 環(huán)境變量,這樣就不用每次都輸入全路徑執(zhí)行 Storm 了。如果我們使用了 /usr/local/bin/storm,執(zhí)行 export PATH=$PATH:/usr/local/bin/storm。
最后,創(chuàng)建 Storm 本地配置文件:~/.storm/storm.yaml,在配置文件中按如下格式加入nimbus 主機:
`nimbus.host:"我們的nimbus主機"`
現(xiàn)在,你可以管理你的 Storm 集群中的拓撲了。
NOTE:Storm 客戶端包含運行一個 Storm 集群所需的所有 Storm 命令,但是要運行它你需要安裝一些其它的工具并做一些配置。詳見附錄B。
有許多簡單且有用的命令可以用來管理拓撲,它們可以提交、殺死、禁用、再平衡拓撲。
jar 命令負責把拓撲提交到集群,并執(zhí)行它,通過 StormSubmitter 執(zhí)行主類。
storm jar path-to-topology-jar class-with-the-main arg1 arg2 argN
path-to-topology-jar 是拓撲 jar 文件的全路徑,它包含拓撲代碼和依賴的庫。 class-with-the-main 是包含 main 方法的類,這個類將由 StormSubmitter 執(zhí)行,其余的參數(shù)作為 main 方法的參數(shù)。
我們能夠掛起或停用運行中的拓撲。當停用拓撲時,所有已分發(fā)的元組都會得到處理,但是spouts 的 nextTuple 方法不會被調用。
停用拓撲:
storm deactivte topology-name
啟動一個停用的拓撲:
storm activate topology-name
銷毀一個拓撲,可以使用 kill 命令。它會以一種安全的方式銷毀一個拓撲,首先停用拓撲,在等待拓撲消息的時間段內(nèi)允許拓撲完成當前的數(shù)據(jù)流。殺死一個拓撲:
storm kill topology-name
NOTE:執(zhí)行 kill 命令時可以通過 -w [等待秒數(shù)]指定拓撲停用以后的等待時間。
再平衡使你重分配集群任務。這是個很強大的命令。比如,你向一個運行中的集群增加了節(jié)點。再平衡命令將會停用拓撲,然后在相應超時時間之后重分配工人,并重啟拓撲。再平衡拓撲:
storm rebalance topology-name
NOTE:執(zhí)行不帶參數(shù)的 Storm 客戶端可以列出所有的 Storm 命令。完整的命令描述請見:https://github.com/nathanmarz/storm/wiki/Command-line-client。
更多建議: