以下是依次需要完成的安装步骤
一、安装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加入到系统环境变量中。