863
技術社區[雲棲]
Apache Storm 官方文檔 —— 命令行操作
本文介紹了 Storm 命令行客戶端中的所有命令操作。如果想要了解怎樣設置你的 Strom 客戶端和遠程集群的交互,請按照配置開發環境一文中的步驟操作。
Storm 中支持的命令包括:
- jar
- kill
- activate
- deactivate
- rebalance
- repl
- classpath
- localconfvalue
- remoteconfvalue
- nimbus
- supervisor
- ui
- drpc
jar
語法:storm jar topology-jar-path class ...
使用指定的參數運行 main 方法(也就是打包好的拓撲 jar 包中的 main 方法)。Storm 所需要的 jar 包和配置信息都在類路徑(classpath)中。這個運行過程已經配置好了,這樣 StormSubmitter 就可以在提交拓撲的時候將 topology-jar-path
中的 jar 包上傳到集群中。
kill
語法:storm kill topology-name [-w wait-time-secs]
殺死集群中正在運行的名為 topology-name
的拓撲。執行該操作後,Storm 首先會注銷拓撲中的 spout,使得拓撲中的消息超時,這樣當前的所有消息就會結束執行。隨後,Storm 會將所有的 worker 關閉,並清除他們的狀態。你可以使用 -w
參數來調整 Storm 在注銷與關閉拓撲之間的間隔時間。
activate
語法:storm activate topology-name
激活運行指定拓撲的所有 spout。
deactivate
語法:storm deactivate topology-name
停止指定拓撲的所有 spout 的運行。
rebalance
語法:storm rebalance topology-name [-w wait-time-secs]
有些場景下需要對正在運行的拓撲的工作進程(worker)進行彈性擴展。例如,加入你有 10 個節點,每個節點上運行有 4 個 worker,現在由於各種原因你需要為集群添加 10 個新節點。這時你就會希望通過擴展正在運行的拓撲的 worker 來使得每個節點隻運行兩個 worker,降低集群的負載。實現這個目的的一種直接的辦法是 kill 掉正在運行的拓撲,然後重新向集群提交。不過 Storm 提供了再平衡命令可以以一種更簡單的方法實現目的。
再平衡首先會在一個超時時間內(這個時間是可以通過 -w
參數配置的)注銷掉拓撲,然後在整個集群中重新分配 worker。接著拓撲就會自動回到之前的狀態(也就是說之前處於注銷狀態的拓撲仍然會保持注銷狀態,而處於激活狀態的拓撲則會返回激活狀態)。
repl
語法:storm repl
打開一個帶有類路徑上的 jar 包和配置信息的 Clojure 的交互式解釋器(REPL)。該命令主要用於調試。
classpath
語法:storm classpath
打印客戶端執行命令時使用的類路徑環境變量。
localconfvalue
語法:storm localconfvalue conf-name
打印出本地 Storm 配置中 conf-name
屬性的值。這裏的本地配置指的是 ~/.storm/storm.yaml
和 defaults.yaml
兩個配置文件綜合後的配置信息。
remoteconfvalue
語法:storm remoteconfvalue conf-name
打印出集群配置中 conf-name
屬性的值。這裏的集群配置指的是 $STORM-PATH/conf/storm.yaml
和 defaults.yaml
兩個配置文件綜合後的配置信息。該命令必須在一個集群機器上執行。
nimbus
語法:storm nimbus
啟動 nimbus 後台進程。該命令應該在 daemontools 或者 monit 這樣的工具監控下執行。詳細信息請參考配置 Storm 集群一文。
supervisor
語法:storm supervisor
啟動 supervisor 後台進程。該命令應該在 daemontools 或者 monit 這樣的工具監控下執行。詳細信息請參考配置 Storm 集群一文。
ui
語法:storm ui
啟動 UI 後台進程。UI 提供了一個訪問 Storm 集群的 Web 接口,其中包含有運行中的拓撲的詳細信息。該命令應該在daemontools 或者 monit 這樣的工具監控下執行。詳細信息請參考配置 Storm 集群一文。
drpc
語法:storm drpc
啟動 DRPC 後台進程。該命令應該在 daemontools 或者 monit 這樣的工具監控下執行。詳細信息請參考分布式 RPC一文。
最後更新:2017-05-22 15:02:21