版本和集羣環境html
storm版本:0.10.0python
集羣環境:兩臺虛擬機apache
環境基礎:jdk-1.7.0_65 python-2.7.8 zookeeper-3.4.5瀏覽器
Step 1:下載storm服務器
到官網上(http://storm.apache.org/downloads.html)下載穩定版本的storm,解壓測試
tar -zxvf apache-storm-0.10.0.tar.gzui
Step 2:配置環境變量spa
vi /etc/profile
export STORM_HOME=/usr/local/apache-storm-0.10.0
export PATH=.:$STORM_HOME/bin:$PATH日誌
Step 3:修改storm.yaml配置文件orm
Storm發行版本解壓目錄下有一個conf/storm.yaml文件,用於配置Storm。默認配置在這裏能夠查看。conf/storm.yaml中的配置選項將覆蓋defaults.yaml中的默認配置。如下配置選項是必須在conf/storm.yaml中進行配置的:
1) storm.zookeeper.servers: Storm集羣使用的Zookeeper集羣地址,其格式以下:
個人配置爲:
storm.zookeeper.servers:
- 「master"
- 「slave1"
- "slave2"
若是Zookeeper集羣使用的不是默認端口,那麼還須要storm.zookeeper.port選項。
2) storm.local.dir: Nimbus和Supervisor進程用於存儲少許狀態,如jars、confs等的本地磁盤目錄,須要提早建立該目錄並給以足夠的訪問權限。而後在storm.yaml中配置該目錄,如:mkdir -p /usr/local/apache-storm-0.10.0/data
storm.local.dir: "/usr/local/apache-storm-0.10.0/data"
注:須要首先建立data目錄
3) nimbus.host: Storm集羣Nimbus機器地址,各個Supervisor工做節點須要知道哪一個機器是Nimbus,以便下載Topologies的jars、confs等文件,如:
個人配置:
nimbus.host: "master"
4) supervisor.slots.ports: 對於每一個Supervisor工做節點,須要配置該工做節點能夠運行的worker數量。每一個worker佔用一個單獨的端口用於接收消息,該配置選項即用於定義哪些端口是可被worker使用的。默認狀況下,每一個節點上可運行4個workers,分別在6700、670一、6702和6703端口,如:
supervisor.slots.ports:
- 6700
- 6701
- 6702
- 6703
5) ui.port: storm的ui界面
ui.port: 8081(默認爲8080)
注意每行格式統一,冒號後面有一個空格,正確配置項顏色會變色,若是是白色則代表配置不對
Step 4:將storm目錄分發到其餘服務器
scp -r apache-storm-0.10.0 slave1:~
而後在移動到相應目錄下
Step 5:啓動storm各個後臺進程
先啓動zookeeper;
Nimbus: 在Storm主控節點上運行 "storm nimbus &" 啓動Nimbus後臺程序,並放到後臺執行;
Supervisor: 在Storm各個工做節點上運行" storm supervisor &"啓動Supervisor後臺程序,並放到後臺執行;
UI: 在Storm主控節點上運行 "storm ui &" 啓動UI後臺程序,並放到後臺執行,啓動後能夠經過http://192.168.8.94:8080/index.html觀察集羣的worker資源使用狀況、Topologies的運行狀態等信息。
每次啓動進程的時候得等一會纔會徹底啓動,徹底啓動後界面會出現以下圖,而後enter鍵就能夠了
最後jps查看後臺進程
注意事項:
Storm後臺進程被啓動後,將在Storm安裝部署目錄下的logs/子目錄下生成各個進程的日誌文件。
經測試,Storm UI必須和Storm Nimbus部署在同一臺機器上,不然UI沒法正常工做,由於UI進程會檢查本機是否存在Nimbus連接。
至此,Storm集羣已經部署、配置完畢,能夠向集羣提交拓撲運行了。我在master和slave1機器上分別啓動了一個supervisor,這是ui上顯示supervisor是兩個,當我殺掉一個時,ui顯示1個,當我再從新啓動時,ui又顯示兩個。
這時再打開瀏覽器http://master:8081/index.html,能夠看到咱們剛纔提產的代碼已經在集羣中顯示了。