首先声明,有些部分参考了下面文章:
http://blog.sina.com.cn/s/blog_8ae7b3fe010124mr.html
http://xumingming.sinaapp.com/179/twitter-storm-搭建storm集群/
https://github.com/nathanmarz/storm/wiki/Setting-up-a-Storm-cluster
一. Storm及相关软件安装
1. 安装python2.7.2
============================
# wgethttp://www.python.org/ftp/python/2.7.2/Python-2.7.2.tgz
# tar zxvf Python-2.7.2.tgz
# cd Python-2.7.2
# ./configure
# make
# make install
# vi /ect/ld.so.conf
文件末尾追加
/usr/local/lib
--
#sudo ldconfig
============================
2. 安装zookeeper
============================
# wgethttp://ftp.meisei-u.ac.jp/mirror/apache/dist//zookeeper/zookeeper-3.3.3/zookeeper-3.3.3.tar.gz
# tar zxf zookeeper-3.3.3.tar.gz
# cp -R zookeeper-3.3.3 /usr/local/
# ln -s /usr/local/zookeeper-3.3.3/ /usr/local/zookeeper
设置 ZOOKEEPER_HOME 和$ZOOKEEPER_HOME/bin
#vi ~/.bashrc
--
追加
export ZOOKEEPER_HOME="/path/to/zookeeper"
export PATH=$PATH:$ZOOKEEPER_HOME/bin
--
用zoo_sample.cfg制作$ZOOKEEPER_HOME/conf/zoo.cfg
#cp /usr/local/zookeeper/conf/zoo_sample.cfg/usr/local/zookeeper/conf/zoo.cfg
制作dataLogDir和运行Dir
sudo mkdir /tmp/zookeeper
sudo mkdir /var/log/zookeeper
配置$ZOOKEEPER_HOME/conf/zoo.cfg文件
加入以下信息:
tickTime=2000
dataDir=/var/zookeeper/
clientPort=2181
initLimit=5
syncLimit=2
server.1=server1_ip:2888:3888
server.2=server2_ip:2888:3888
server.3=server3_ip:2888:3888
server.4=server4_ip:2888:3888
在/tmp/zookeeper文件夹下新建文件:myid
添加server序号到myid中,如: server.1 机器的myid 只需要加入数字 1 即可;
============================
3. 安装zeromq & jzmq
============================
1)安装zeromq
# wgethttp://download.zeromq.org/historic/zeromq-2.1.7.tar.gz
# tar zxf zeromq-2.1.7.tar.gz
# cd zeromq-2.1.7
# ./configure
**********************
如果遇到Error:cannot link with -luuid, install uuid-dev
安装uuid
1. 下载最新的epel-release rpm
# wgethttp://download.fedora.redhat.com/pub/epel/5/x86_64/
2. 安装epel-release rpm:
# rpm -Uvh epel-release*rpm
3. 安装uuid相关数据包:
# yum install uuid
# yum install uuid-devel
# yum install python-dev
# yum install -y gcc make autoconf automake e2fsprogs-develglibc-devel
**********************
#make
#make install
更新LD_LIBRARY_PATH
#ldconfig
============================
2)安装jzmq
============================
#yum install git
#git clone git://github.com/nathanmarz/jzmq.git
**********************
如果有proxy的话执行
#git clone http://github.com/nathanmarz/jzmq.git
就能避开git的代理设置
**********************
# cd jzmq
# ./autogen.sh
# ./configure
# make
# make install
============================
4. 安装storm
============================
# wgethttps://github.com/downloads/nathanmarz/storm/storm-0.6.2.zip--no-check-certificate
# unzip storm-0.6.2.zip
# cp -R storm-0.6.2 /usr/local/
# vi ~/.bashrc
--
追加
exportSTORM_HOME=/usr/local/storm-0.6.2
export PATH=$PATH:$STORM_HOME/bin
--
============================
5,配置storm机群
安装完成之后,下面配置机群信息:
在文件$STORM_HOME/conf/storm.yaml配置以下信息:
1. storm.zookeeper.servers 这个配置storm集群使用的zookeeper集群的地址,比如:
storm.zookeeper.servers:
- "111.222.333.444"
- "555.666.777.888"
2. storm.local.dir Nimbus和Supervisor在本地磁盘上需要一个目录来存储一些状态信息(jar包, 配置文件之类的东西)你应该在每台机器上创建那个目录,比如:
storm.local.dir: "/home/username/stormData"
3. nimbus.host 所有工作机器需要nimbus机器的地址, 这样它们才知道去哪里获取jar包和配置文件:
nimbus.host: "nimbus_ip"
4. supervisor.slots.ports 对于每一台工作机器,这个配置指定在这台工作机器上运行多少工作进程, 每个进程使用一个独立端口来接收消息,这个配置同时也指定使用哪些端口。如果你在这里定义5个端口, storm会在这个机器上最多分配5个工作进程。如果分配3个端口,那么最多分配3个进程。默认的配置是4个:
supervisor.slots.ports:
- 6700
- 6701
- 6702
- 6703
基本配置完毕。
==================================================
6.启动机群
启动storm之前需要将各个节点的防火墙关闭:
sudo service iptables stop
首先机群节点必须启动zookeeper,在每个机器上运行:
$zkServer..sh start
在nimbus节点运行:
$storm nimbus
在supervisor节点运行:
$storm supervisor
在nimbus节点启动storm自带的监控:
$storm ui
在nimbus节点的浏览器输入 http://localhost:8080/ 显示机群运行状态
注意:输入以上命令后,shell界面会停在进程运行状态(不能使用ctrl+c取消),所以,如果要输入别的命令,需要再打开一个shell界面。