準備工作:
- 將開發好的jar包上傳到服務器package目錄下
- Storm集群已經啟動
我們提交一個WordCount任務:
為了方便,我們仍以
blogchong
老師的代碼為例 GitHub項目鏈接,請讀者自行打包并上傳到nimbus節點上
- nimbus服務器進入package目錄
cd /root/storm1/package
- 執行命令
storm jar ./storm-example-0.0.1-SNAPSHOT.jar com.blogchong.storm.helloworld.WordCountTopology task
解釋下這條命令中的各個參數:
- jar:運行你的storm job,topology是類中的主函數
- ./storm-example-0.0.1-SNAPSHOT.jar:這個就不用說了,你要提交的jar包
- com.blogchong.storm.helloworld.WordCountTopology:執行的主類
- task:Topology任務名稱,注意這個是不能重復的
執行結果如圖所示
提交拓撲任務
稍等下就會顯示拓撲任務提交成功。
- 命令行查看storm任務
storm list
執行后會顯示storm當前任務列表,證明任務確實提交成功了
拓撲任務列表
- 在storm監控UI上查看
打開http://192.168.1.150:8080,查看storm監控UI
監控UI
在這里我們可以看到當前有1條任務,并且運行在storm2的supervisor上。
- 查看worker日志
登錄storm2主機,進入logs目錄
logs目錄
我們可以看到,這里有個worker-6703.log文件,這個文件就是6703端口的worker的工作日志。查看該日志
tail -f worker-6703.log
我們可以看到,終端中已經出現了不斷變化的詞頻統計
日志
到此為止,我們的wordcount任務提交完成,當然這只是提交一個最基本的拓撲任務,更復雜的以后我們再說。
storm相關命令
- activate :激活指定任務;
- classpath:打印storm的classpath ;
- deactivate :暫停storm的任務;
- dev-zookeeper :啟動一個新的Zookeeper,這種情況只用于dev/test ;
- drpc:啟動一個DRPC進程;
- help :命令解釋及操作提示;
- jar :運行你的storm job,topology是類中的主函數;
- kill:通過任務名稱kill一個任務;
- list:列出正在運行的topolofies和狀態;
- localconfvalue:打印出具體配置參數在本地storm配置文件中的值;
- nimbus:啟動一個nimubs進程;
- supervisor:啟動一個supervisor進程;
- ui:啟動監控頁面UI的后臺進程;
- rebalance:節點擴展之后進行負載均衡;
- remoteconfvalue:打印出具體配置參數在storm cluster中的值;
- version :獲取版本Storm號;