# 安装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的工具,用来辅助监控拓扑。
~~~