storm的用途这里不做过多的讲解,网上资料一大把,这里只讲安装:strom的按装分为两部分,首先安装相关的依赖。
storm的安装主要以来的其他组件有:
1.java
2.zookeeper
3.ZeroMQ 2.1.7
4.JZMQ
5.python
6.unzip
可以确认的是1,2,3,4是必须的,unzip只是在解压的jzmq的之后用了在storm实际的运行中有没有用到目前还不确定,Python在目前整个安装过程中确实是没有用到的。我的安装顺序是1-2-6-3-4-5.因为要解压jzmq所以现装了unzip
安装java:
1.java安装比较简单:tar -xvf [java包]
2.在/etc/profile加入classpath
安装zookeeper:
1.在一台机器上解压后进行如下配置:
在zookeeper-xx/conf/zoo.cfg中进行如下配置:
tickTime=2000
dataDir=/var/zookeeper/
clientPort=2181
initLimit=5
syncLimit=2
server.1=ip1:2888:3888
server.2=ip2:2888:3888
server.3=ip3:2888:3888
2.使用scp命令分发到其它两台机子上
3.在每台机子的/var/zookeeper/下创建myid文件,内容为serve编号。例如server.1的myid文件内容是:1。
安装ZeroMQ 2.1.7:
tar -xzf zeromq-2.1.7.tar.gz
cd zeromq-2.1.7
./configure
make
sudo make install
在安装过程中可能会error uuid库找不到。
解决:redhat下:yum install libuuid-devel。
centos5.9下:yum install uuid*
yum install e2fsprogs*
yum install libuuid*
安装JZMQ:
1.保证ZeroMQ成功
2. unzip jzmq.zip
cd jzmq
./autogen.sh
./configure
make
sudo make install
安装storm:
1.unzip storm-0.8.1.zip
2.修改storm.yaml配置文件(storm-x.x.x/conf)
A.storm.zookeeper.servers:
- ip1;
- ip2;
- ip3;
如果Zookeeper集群使用的不是默认端口,那么还需要storm.zookeeper.port选项
B.storm.local.dir:/data/storm/workdir
C.java.library.path: Storm使用的本地库(ZMQ和JZMQ)加载路径,默认为"/usr/local/lib:/opt/local/lib:/usr/lib",一般来说ZMQ和JZMQ默认安装在/usr/local/lib 下,因此不需要配置即可。
D.nimbus.host: ip1(ip1为nimbus节点)
E.supervisor.slots.ports:
- 6700
- 6701
- 6702
- 6703
同样是在一台机子上配置好,用scp分发到其他2台机子上
启动storm:
Nimbus: 在Storm主控节点上运行"bin/storm nimbus >/dev/null 2>&1 &"启动Nimbus后台程序,并放到后台执行;
Supervisor: 在Storm各个工作节点上运行"bin/storm supervisor >/dev/null 2>&1 &"启动Supervisor后台程序,并放到后台执行;
UI: 在Storm主控节点上运行"bin/storm ui >/dev/null 2>&1 &"启动UI后台程序,并放到后台执行,
启动后可以通过http://{nimbus host}:8080观察集群的worker资源使用情况、Topologies的运行状态等信息。
PS:Nimbus和UI应该在同一台机子上
参考:
http://xumingming.sinaapp.com/179/twitter-storm-%E6%90%AD%E5%BB%BAstorm%E9%9B%86%E7%BE%A4/
http://www.cnblogs.com/panfeng412/archive/2012/11/30/how-to-install-and-deploy-storm-cluster.html
http://blog.sina.com.cn/s/blog_8ae7b3fe010124mr.html