1.啓動nimbus,進程名爲nimbusjava
在nimbus虛擬機上去輸入 : nohup storm nimbus &shell
2.啓動supervisor,進程名爲supervisorapache
在supervisor虛擬機上去輸入 : nohup storm supervisor &編程
3.啓動ui,進程名爲corebash
在集羣全部虛擬機上輸入 : nohup storm ui &ssh
4.啓動logoop
在集羣全部虛擬機上輸入 : nohup storm log &ui
5.上傳topolua
storm jar storm_topo.jar com.cjun.MainTopology myTopospa
storm_topo.jar:項目的jar包
com.cjun.MainTopology:主類的路徑
myTopo:此topo在storm ui中顯示的名稱
6.殺死storm進程
先用jps查看storm進程,而後用:kill -9 x,殺死對應的進程,x爲對應進程的進程號。
提交Topologies
命令格式:storm jar 【jar路徑】 【拓撲包名.拓撲類名】 【拓撲名稱】
樣例:storm jar /storm-starter.jar storm.starter.WordCountTopology wordcountTop
#提交storm-starter.jar到遠程集羣,並啓動wordcountTop拓撲。
中止Topologies
命令格式:storm kill 【拓撲名稱】
樣例:storm kill wordcountTop
#殺掉wordcountTop拓撲。
啓動nimbus後臺程序
命令格式:storm nimbus
啓動supervisor後臺程序
命令格式:storm supervisor
啓動drpc服務
命令格式:storm drpc
啓動ui服務
命令格式:storm ui
啓動REPL
REPL — read-evaluate-print-loop。
雖然clojure能夠做爲一種腳本語言內嵌在java裏面,可是它的首選編程方式是使用REPL,這是一個簡單的命令行接口,使用它你能夠輸入你的命令,執行,而後查看結果, 你能夠如下面這個命令來啓動REPL:
命令格式:storm repl
打印本地配置
命令格式:storm localconfvalue 【配置參數關鍵字】
舉例:storm localconfvalue storm.zookeeper.servers
#根據指定參數打印本地配置的值。
打印遠程配置
命令格式:storm remoteconfvalue 【配置參數關鍵字】
舉例:storm remoteconfvalue storm.zookeeper.servers
#根據指定參數打印遠程配置的值。
執行Shell腳本
命令格式:storm shell resourcesdir command args
打印CLASSPATH
命令格式:storm classpath
1、設置節點間無密碼訪問
爲了實現批量啓動和中止,須要提早配置好各節點間的無密碼訪問,具體方法詳見我之前的帖子或者問度娘,這裏再也不介紹。
2、(主節點)切換當前路徑到storm的bin目錄下,並建立如下腳本和文件。
cd /software/storm/apache-storm-0.9.2-incubating/bin touch start-supervisor.sh touch start-all.sh touch stop-supervisor.sh touch stop-all.sh touch supervisor-hosts
賦予以上腳本可執行權限
chmod +x *.sh
3、腳本編寫
一、start-supervisor.sh
#!/bin/bash . /etc/profile # storm的bin目錄 bin=/software/storm/apache-storm-0.9.2-incubating/bin supervisors=$bin/supervisor-hosts storm nimbus >/dev/null 2>&1 & storm ui >/dev/null 2>&1 & cat $supervisors | while read supervisor do echo $supervisor ssh $supervisor $bin/start-supervisor.sh & done
二、start-supervisor.sh
#!/bin/bash . /etc/profile storm supervisor >/dev/null 2>&1 &
三、stop-all.sh
#!/bin/bash . /etc/profile # storm的bin目錄 bin=/software/storm/apache-storm-0.9.2-incubating/bin supervisors=$bin/supervisor-hosts kill -9 `ps -ef|grep daemon.nimbus| awk '{print $2}'` kill -9 `ps -ef|grep ui.core| awk '{print $2}'` cat $supervisors | while read supervisor do echo $supervisor ssh $supervisor $bin/stop-supervisor.sh & done
四、stop-supervisor.sh
#!/bin/bash . /etc/profile kill -9 `ps -ef|grep daemon.supervisor| awk '{print $2}'` # 這裏我直接清理了storm的工做路徑和log文件,根據自身須要來設置 rm -rf /software/storm/workdir/* rm -rf /software/storm/apache-storm-0.9.2-incubating/logs/*
五、supervisor-hosts
文件中寫入全部節點的主機名或者ip,格式以下:
storm1 storm2 storm3
4、腳本的使用
腳本須要在主節點上使用。爲了便於使用,請確保環境變量中已經加入storm的bin目錄。
將上文編輯好的start-supervisor和stop-supervisor腳本複製到全部節點相同路徑下。
scp *-supervisor.sh storm2:/software/storm/apache-storm-0.9.2-incubating/bin scp *-supervisor.sh storm3:/software/storm/apache-storm-0.9.2-incubating/bin
start-all.sh
stop-all.sh
5、設置開機自啓
要實現storm開機自啓,比較簡單的方法就是開機自動運行下以前的start-all腳本,設置方法以下
vi /etc/rc.d/rc.local
添加執行腳本
#!/bin/sh # # This script will be executed *after* all the other init scripts. # You can put your own initialization stuff in here if you don't # want to do the full Sys V style init stuff. touch /var/lock/subsys/local sh /software/storm/apache-storm-0.9.2-incubating/bin/start-all.sh