storm啓動命令

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
  • 啓動集羣中全部節點supervisor進程,並在主節點上啓動nimbus和ui進程
start-all.sh
  • 中止集羣中全部節點supervisor進程,並中止nimbus和ui進程
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
相關文章
相關標籤/搜索