以下是依次需要完成的安装步骤

一、安装JDK1.6

二、安装Zookeeper

三、安装zeromq-2.1.7

四、安装jzmq

五、安装Python-2.7.2

六、安装unzip

七、安装Storm

一、下载并安装JDK1.6 并设置环境变量,如:

export JAVA_HOME=/opt/java6

export PATH=$PATH:$JAVA_HOME/bin

运行java、javac命令,测试java正常安装。

二、安装zookeeper

简易安装:下载zookeeper-3.4.6.tar.gz放到/opt目录,然后修改/opt/zookeeper-3.4.6/data/myid 文件中的序列号,最后到bin目录下./zkServer.sh start 启动

完整安装:

安装zookeeper(至少安装2n+1台,n>0,也就是说不能安装两台,所以每套环境只安装了一台)

1、下载zookeeper:wget http://mirror.esocc.com/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz 放到opt目录下

2、将conf目录下的  zoo_sample.cfg复制为zoo.cfg

3、编辑zoo.cfg

   3.1、添加server(单机模式就不用改了,集群模式要添加如下:)

        server.1=zookeeper1:2888:3888  (节点ip及端口)

        server.2=zookeeper2:2888:3888

        server.3=zookeeper3:2888:3888

   3.2 添加配置项,说明数据文件路径

        dataDir=/opt/zookeeper-3.4.6/data/  

4、在/opt/zookeeper-3.4.6/data/  目录下新建myid文件,并编辑为server.id中的id号,如1、2、3

5、启动zookeeper:/opt/zookeeper-3.4.6/bin/zkServer.sh start

6、查看状态:/opt/zookeeper-3.4.6/bin/zkServer.sh status

7、停止zookeeper进程:/opt/zookeeper-3.4.6/bin/zkServer.sh stop

三、安装zeromq-2.1.7(安装过程中若出现失败,请关注注意事项)

1、下载并解压zeromq-2.1.7

wget http://download.zeromq.org/zeromq-2.1.7.tar.gz

tar -zxf zeromq-2.1.7.tar.gz

2、执行以下命令

cd zeromq-2.1.7

./configure

make

make install

四、安装jzmq

1、下载并解压jzmg

2、执行以下命令

cd jzmq

./autogen.sh

./configure

make

make install

五、安装Python-2.7.2

1、下载并解压Python-2.7.2

2、执行以下命令

cd Python-2.7.2

./configure

make

make install

六、安装unzip

yum install unzip

七、安装storm-0.8.0

1、下载并解压storm-0.8.0

2、修改${storm}/conf/storm.yaml配置文件

1) storm.zookeeper.servers: Storm集群使用的Zookeeper集群地址,其格式如下:

storm.zookeeper.servers:

 - "111.222.333.444"

 - "555.666.777.888"

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

2) storm.local.dir: Nimbus和Supervisor进程用于存储少量状态,如jars、confs等的本地磁盘目录,需要提前创建该目录并给以足够的访问权限。然后在storm.yaml中配置该目录,如:

storm.local.dir: "/state/partition1/tmp/storm"

3) java.library.path: Storm使用的本地库(ZMQ和JZMQ)加载路径,默认为"/usr/local/lib:/opt/local/lib:/usr/lib",一般来说ZMQ和JZMQ默认安装在/usr/local/lib 下,因此不需要配置即可。

4) nimbus.host: Storm集群Nimbus机器地址,各个Supervisor工作节点需要知道哪个机器是Nimbus,以便下载Topologies的jars、confs等文件,如:

nimbus.host: "111.222.333.444"

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

supervisor.slots.ports:

   - 6700

   - 6701

   - 6702

   - 6703

3 启动Storm各个后台进程

以下是启动Storm各个后台进程的方式:

a、Nimbus: 在Storm主控节点的${storm}/bin目录上运行"nohup storm nimbus &"启动Nimbus后台程序,并放到后台执行;

b、Supervisor: 在Storm各个工作节点的${storm}/bin目录上运行"nohup storm supervisor &"启动Supervisor后台程序,必须先启动主节点并放到后台执行;

c、UI: 在Storm主控节点的${storm}/bin目录上运行"nohup storm ui &"启动UI后台程序,并放到后台执行,启动后可以通过

http://nimbus host:9090/ 观察集群的worker资源使用情况、Topologies的运行状态等信息。


至此,Storm集群已经部署、配置完毕,可以向集群提交拓扑运行了。

启动目前项目的各个job在$STORM_HOME/bin目录下    

只要在主节点启动,jar包也放主节点上

参数:名称,进程数NumWorkers(默认值为各个topology后面的值)

storm jar stormtopology.jar com.hc360.storm.MyTopology MyTopology 3;


通过UI去查看各个job是否成功启动:

http://nimbus host:9090/


关闭各个job的命令如下:

在$STORM_HOME/bin目录下

storm kill MyTopology;


注意事项:

1.配置hosts文件 (注意:localhost采取默认127.0.0.1,不要改动)

vi /etc/hosts

配置环境变量(jdk,storm):

vi /etc/profile

2.No route to host

出现上面错误的原因有可能是:防火墙没有关闭

iptables -l

3.中途失败,按照提示先安装其他库

yum install  libtools

yum install gcc-c++

yum install uuid-devel

yum install libuuid-devel

4.Storm后台进程被启动后,将在Storm安装部署目录下的logs/子目录下生成各个进程的日志文件。

5.经测试,Storm UI必须和Storm Nimbus部署在同一台机器上,否则UI无法正常工作,因为UI进程会检查本机是否存在Nimbus链接。

6.为了方便使用,可以将bin/storm加入到系统环境变量中。


Storm集群安装部署步骤【详细版】