一.Storm的下載
官網下載地址:http://storm.apache.org/downloads.html
這里下載最新的版本storm1.2.2,進入之后選擇一個鏡像下載

二.Storm偽分布式安裝
1.環境准備
JDK 1.7+ 驗證: java -version
Python 2.6.6+ 驗證:python -V
2.解壓安裝包
[admin@node21 software]$ tar zxvf apache-storm-1.2.2.tar.gz -C /opt/module/
3.創建logs文件目錄
[admin@node21 software]$ cd /opt/module/apache-storm-1.2.2 [admin@node21 apache-storm-1.2.2]$ mkdir logs
4.啟動storm
- 查看幫助
[admin@node21 apache-storm-1.2.2]$ ./bin/storm help
幫助如下
[admin@node21 storm-1.2.2]$ ./bin/storm help Commands: activate blobstore classpath deactivate dev-zookeeper drpc get-errors heartbeats help jar kill kill_workers list localconfvalue logviewer monitor nimbus node-health-check pacemaker rebalance remoteconfvalue repl set_log_level shell sql supervisor ui upload-credentials version Help: help help <command> Documentation for the storm client can be found at http://storm.apache.org/documentation/Command-line-client.html Configs can be overridden using one or more -c flags, e.g. "storm list -c nimbus.host=nimbus.mycompany.com"
- 啟動Zookeeper
[admin@node21 apache-storm-1.2.2]$ ./bin/storm dev-zookeeper >> ./logs/zk.out 2>&1 &
- 啟動Nimbus
[admin@node21 apache-storm-1.2.2]$ ./bin/storm nimbus >> ./logs/nimbus.out 2>&1 &
- 啟動Storm UI
[admin@node21 apache-storm-1.2.2]$ ./bin/storm ui >> ./logs/ui.out 2>&1 &
- 啟動Supervisor
[admin@node21 apache-storm-1.2.2]$ ./bin/storm supervisor >> ./logs/supervisor.out 2>&1 &
- 啟動Logviewer
[admin@node21 apache-storm-1.2.2]$ ./bin/storm logviewer ./logs/logviewer.out 2>&1 &
5.查看進程

6.WebUI查看
WebUI查看地址:http://node21:8080/

三.Storm分布式集群安裝
官網集群配置文檔:http://storm.apache.org/releases/1.2.2/Setting-up-a-Storm-cluster.html
1.集群部署
| IP | 節點名稱 | Jdk,Python | Zookeeper | Nimbus | Supervisor |
| 192.168.100.21 | node21 | Jdk,Python | Zookeeper | Nimbus | |
| 192.168.100.22 | node22 | Jdk,Python | Zookeeper | Supervisor | |
| 192.168.100.23 | node23 | Jdk,Python | Zookeeper | Supervisor |
Zookeeper集群安裝參考: CentOS7.5搭建Zookeeper3.4.12集群與命令行操作
2.安裝環境解壓安裝包
[admin@node21 software]$ tar zxvf apache-storm-1.2.2.tar.gz -C /opt/module/ [admin@node21 software]$ cd /opt/module/ [admin@node21 module]$ mv apache-storm-1.2.2/ storm-1.2.2 [admin@node21 module]$ cd storm-1.2.2 [admin@node21 storm-1.2.2]$ mkdir logs
3.修改yaml配置文件
[admin@node21 storm-1.2.2]$ vi conf/storm.yaml
1)storm.zookeeper.servers:這是Storm集群的Zookeeper集群中的主機列表。
2)storm.local.dir:Nimbus和Supervisor守護進程需要本地磁盤上的目錄來存儲少量狀態(如jar,confs和類似的東西)。您應該在每台計算機上創建該目錄,為其提供適當的權限,然后使用此配置填寫目錄位置。
3)nimbus.seeds:工作節點需要知道哪些機器是主機的候選者才能下載拓撲罐和confs。
4)supervisor.slots.ports:對於每個工作者計算機,您可以使用此配置配置在該計算機上運行的工作程序數。每個工作人員使用單個端口接收消息,此設置定義哪些端口可以使用。如果您在此處定義了五個端口,那么Storm將分配最多五個工作人員在此計算機上運行。如果定義三個端口,Storm最多只能運行三個端口。默認情況下,此設置配置為在端口6700,6701,6702和6703上運行4個工作程序。

4.分發Storm到其他節點
[admin@node21 module]$ scp -r storm-1.2.2/ node22:`pwd` [admin@node21 module]$ scp -r storm-1.2.2/ node23:`pwd`
5.配置環境變量
[admin@node21 module]$ sudo vi /etc/profile export STORM_HOME=/opt/module/storm-1.2.2 export PATH=$PATH:$STORM_HOME/bin [admin@node21 module]$ source /etc/profile
6.啟動集群
- 啟動zookeeper集群,各個節點執行
$ zkServer.sh start
- 啟動storm集群
node21上啟動Nimbus,啟動webUI
[admin@node21 storm-1.2.2]$ ./bin/storm nimbus >> ./logs/nimbus.out 2>&1 & [admin@node21 storm-1.2.2]$ ./bin/storm ui >> ./logs/ui.out 2>&1 &
node22和node23啟動supervisor,按照配置,每啟動一個supervisor就有了4個slots
[admin@node22 storm-1.2.2]$ ./bin/storm supervisor >> ./logs/supervisor.out 2>&1 & [admin@node23 storm-1.2.2]$ ./bin/storm supervisor >> ./logs/supervisor.out 2>&1 &
7.查看進程



8.查看WebUI
WebUI查看地址:http://node21:8080/
9.編寫storm服務腳本
node21上 start-stormCluster.sh
#!/bin/bash echo "******************** 正在啟動nimbus服務 *******************" ssh admin@node21 '/opt/module/storm-1.2.2/bin/storm nimbus >> /opt/module/storm-1.2.2/logs/nimbus.out 2>&1 &' echo "********************* 正在啟動webUi服務 ******************" ssh admin@node21 '/opt/module/storm-1.2.2/bin/storm ui >> /opt/module/storm-1.2.2/logs/ui.out 2>&1 &' echo "******************** 正在啟動supervisor服務 *******************" ssh admin@node22 '/opt/module/storm-1.2.2/bin/storm supervisor >> /opt/module/storm-1.2.2/logs/supervisor.out 2>&1 &' ssh admin@node23 '/opt/module/storm-1.2.2/bin/storm supervisor >> /opt/module/storm-1.2.2/logs/supervisor.out 2>&1 &' echo "****************** 服務啟動成功 *******************"*
給腳本賦權限 :chmod +x 腳本名稱
四.故障排除
參考文檔:http://storm.apache.org/releases/1.2.2/Troubleshooting.html

