安装Storm集群,需要依赖以下组件:

Zookeeper
Python
Zeromq
Storm
JDK
JZMQ

我准备了3台机器,并在每台机器上配置主机别名,$ vi /etc/hosts

20161120img01

1.搭建Zookeeper集群

(1)安装zookeeper

$ tar zxvf zookeeper-3.4.6.tar.gz

(2)修改zoo.cfg

$ cp -rf conf/zoo_sample.cfg conf/zoo.cfg
$ vi zoo.cfg

内容:

tickTime=2000
dataDir=/usr/local/software/zookeeper-3.4.6/data
clientPort=2181
initLimit=5
syncLimit=2
server.1=host1:2888:3888
server.2=host2:2889:3889
server.3=host3:2890:3890

(3)在”dataDir”的目录中添加myid,并且编辑内容分别对应server的序号,分别是1、2、3

(4)在三台机器上分别启动

$ ./bin/zkServer.sh start ./conf/zoo.cfg

通过$ ./bin/zkServer.sh status 查看zookeeper的leader

20161120img02

20161120img03

20161120img04

2.安装JDK

(1) tar zxvf jdk-7u79-linux-x64.tar.gz

(2) 配置环境变量

$ vi /etc/profile

20161120img05

运行$ source /etc/profile,使配置环境生效

(3)查看java版本

20161120img06

3.安装JZMQ

$ git clone git://github.com/nathanmarz/jzmq.git
$ cd jzmq
$ ./autogen.sh
$ ./configure
$ make & make install

4.安装Zeromq

安装ZeroMQ所需组件及工具:

$ yum install gcc gcc-c++ make uuid-devel libuuid-devel libtool

$ tar zxvf zeromq-4.2.0.tar.gz
$ cd zeromq-4.2.0

手动创建classdist_noinst.stamp空文件

$ touch src/classdist_noinst.stamp

进入文件夹 jzmq/src/org/zeromq,手动编译Java代码 $ javac *.java

$ ./configure
$ make & make install

5.搭建Storm集群

(1) 安装包

$ tar zxvf apache-storm-1.0.2.tar.gz

(2) 配置环境变量

20161120img07

(3) 建立storm存储目录

$ mkdir /tmp/storm

(4) 把host1作为nimbus和ui的服务器。host1、host2、host3为supervisor服务器,修改配置文件/conf/storm.yaml, 如下配置:

storm.zookeeper.servers:
 - "host1"
 - "host2"
 - "host3"
ui.port: 8081
nimbus.host: "host1"
storm.local.dir: "/tmp/storm"
supervisor.slots.ports:
  - 6700
  - 6701
  - 6702
  - 6703

其中,配置参数说明:

• storm.zookeeper.servers:Storm集群使用的Zookeeper集群地址,如果Zookeeper集群使用的不是默认端口,那么还需要storm.zookeeper.port选项。

• ui.port:Storm UI的服务端口

• storm.local.dir:Nimbus和Supervisor进程用于存储少量状态,如jars、confs等的本地磁盘目录

• nimbus.host: Storm集群Nimbus机器地址

• supervisor.slots.ports: 对于每个Supervisor工作节点,需要配置该工作节点可以运行的worker数量。每个worker占用一个单独的端口用于接收消息,该配置选项即用于定义哪些端口是可被worker使用的。默认情况下,每个节点上可运行4个workers,分别在6700、6701、6702和6703端口

6.启动Storm集群

(1) Nimbus:

在Storm主控节点(本文中为host1)上运行”bin/storm nimbus >/dev/null 2>&1 &”启动Nimbus后台程序,并放到后台执行;

(2) Supervisor:

在Storm各个工作节点(本文中为host1/host2/host3)上运行”bin/storm supervisor >/dev/null 2>&1 &”启动Supervisor后台程序,并放到后台执行;

(3) UI:

在Storm主控节点(本文中为host1)上运行”bin/storm ui >/dev/null 2>&1 &”启动UI后台程序,并放到后台执行。

7.查看Storm UI

请求 http://192.168.137.131:8081/

20161120img08

自此storm集群环境就搭建完毕了。