java6 SDK以上版本
python 2.6以上版本
修改每台机器的/et/hosts文件修改:
# vi /etc/hosts
192.168.1.206 nimbus
192.168.1.207 supervisor1
192.168.1.208 supervisor2
192.168.1.205 supervisor3
此处一定要修改每台机器的hostname与之相对应,因为supervisor.clj里面有行代码local-state (supervisor-state conf)
该代码在启动supervisor的时候会找本机的hostname ,hostname配置不正确会导致supervisor启动失败
每台安装ZeroMQ
# tar -zxvf zeromq-2.1.7.tar.gz
# cd zeromq-2.1.7
# ./configure
# make
# make install
*注意在安装uuid-dev的时候不同系统安装的名称不一样,使用centeros的同学需要安装yum install libuuid-devel,ubuntu的同学可以直接安装uuid-dev : apt-get install uuid-dev
每台安装JZMQ:
# unzip nathanmarz-jzmq-dd3327d.zip
# cd nathanmarz-jzmq-dd3327d
# ./autogen.sh
# ./configure
# make
# make install
安装zookeeper:
# tar -zxvf zookeeper-3.4.3.tar.gz
# cd zookeeper-3.4.3
# vi conf/zoo.cfg
clientPort=10205
server.0=nimbus:2888:3888
server.1=supervisor1:2888:3888
server.2=supervisor2:2888:3888
server.3=supervisor3:2888:3888
修改/var/zookeeper/myid ,与zoo.cfg中server.后面的数字一致,如nimbus机器改为0
# bin/zkServer.sh start (启动服务)
# bin/zkCli.sh stat /测试服务是否正常启动
# bin/zkCli.sh ls /
每台安装Storm:
# unzip storm-0.7.0.zip
# cd storm-0.7.0
# vi conf/storm.yaml
storm.zookeeper.servers:
- "nimbus"
- "supervisor1"
- "supervisor2"
- "supervisor3"
storm.zookeeper.port: 10205
storm.local.dir: "/mnt/storm"
java.library.path: /usr/local/lib:/opt/local/lib:/usr/lib
nimbus.host: "nimbus"
supervisor.slots.ports:
- 6700
- 6701
- 6702
- 6703
...
storm.local.dir表示storm需要用到的本地目录,比如topology的jar文件保存,它用到的zookeeper的数据保存。
nimbus.host表示哪一台机器是nimbus机器。
supervisor.slots.ports表示supervisor节点的槽数,即每个supervisor能开几个worker进程。
然后在~/.storm/目录新建storm.yaml文件,~代表用户主目录。storm.yaml文件内容:nimbus.host: "192.168.1.205"。
export PATH=$PATH:*/storm-0.7.0-rc/bin
此处是为了执行storm jar wordcount.jar demo命令,如果在开发机器上装storm直接上传topology到集群也许要如此配置
启动:
主节点(nimbus节点):
# bin/storm nimbus
# bin/storm ui
从节点(supervisor节点):
# bin/storm supervisor
查看状态:
# vi logs/nimbus.log
# vi logs/supervisor.log
# vi logs/ui.log
注意默认log4j配置文件storm.log.properties里面的logs目录不是绝对路径,而是相对于当前执行storm命令所在路径的logs/路径。
http://192.168.1.206:8080 (必须UI已经启动)