# 安裝Storm集群
譯者注:本附錄的內容已經有些陳舊了。最新的Storm已不再必須依賴ZeroMQ,各種依賴的庫和軟件也已經有更新的版本。
有以下兩種方式創建Storm集群:
* 使用[Storm部署](https://github.com/nathanmarz/storm-deploy)在亞馬遜EC2上面創建一個集群,就像你在[第6章](http://ifeve.com/?p=11032)看到的。
* 手工安裝(詳見本附錄)
要手工安裝Storm,需要先安裝以下軟件
* Zookeeper集群(安裝方法詳見[管理向導](http://zookeeper.apache.org/doc/r3.3.3/zookeeperAdmin.html))
* Java6.0
* Python2.6.6
* Unzip命令
**NOTE:**?Nimbus和管理進程將要依賴Java、Python和unzip命令
安裝本地庫:
安裝ZeroMQ:
| `01` | `wget?[http://download.zeromq.org/historic/zeromq-2.1.7.](http://download.zeromq.org/historic/zeromq-2.1.7.)``tar``.gz` |
| `02` | ? |
| `03` | `tar`?`-xzf zeromq-2.1.7.``tar``.gz` |
| `04` | ? |
| `05` | `cd`?`zeromq-2.1.7` |
| `06` | ? |
| `07` | `./configure` |
| `08` | ? |
| `09` | `make` |
| `10` | ? |
| `11` | `sudo`?`make`?`install` |
安裝JZMQ:
| `1` | `git clone?[https://github.com/nathanmarz/jzmq.git](https://github.com/nathanmarz/jzmq.git)` |
| `2` | `cd`?`jzmq` |
| `3` | `./autogen.sh` |
| `4` | `./configure` |
| `5` | `make` |
| `6` | `sudo`?`make`?`install` |
本地庫安裝完了,下載最新的Storm穩定版(寫作本書時是Storm0.7.1。譯者注:翻譯本章時已是v0.9.1,可從[http://storm.incubator.apache.org/](http://storm.incubator.apache.org/)或[https://github.com/apache/incubator-storm/releases](https://github.com/apache/incubator-storm/releases)下載),并解壓縮。
編輯配置文件,增加Storm集群配置(可以從Storm倉庫的[defaults.yaml](https://github.com/nathanmarz/storm/blob/master/conf/defaults.yaml)看到所有的默認配置)。
編輯Storm目錄下的*conf/**storm.yaml*,添加以下參數,增加集群配置:
~~~
storm.zookeeper.servers:
– "zookeeper addres 1"
– "zookeeper addres 2"
– "zookeeper addres N"
storm.local.dir: "a local directory"
nimbus.host: "Nimbus host addres"
supervisor.slots.ports:
– supervisor slot port 1
– supervisor slot port 2
– supervisor slot port N
~~~
參數解釋:*storm.zookeeper.servers*
你的zookeeper服務器地址。
~~~
storm.local.dir:
Storm進程保存內部數據的本地目錄。(務必保證運行Storm進程的用戶擁有這個目錄的寫權限。)
~~~
~~~
nimbus.host
Nimbus運行的機器的地址
~~~
~~~
supervisor.slots.ports
接收消息的工人進程監聽的端口號(通常從6700開始);管理進程為這個屬性指定的每個端口號運行一個工人進程。
當你完成了這些配置,就可以運行所有的Storm進程了。如果你想運行一個本地進程測試一下,就把nimbus.host配置成localhost。
啟動一個Storm進程,在Storm目錄下執行:./bin/storm 進程名。
NOTE:Storm提供了一個出色的叫做Storm UI的工具,用來輔助監控拓撲。
~~~