之前说了storm单机环境的搭建:http://blog.csdn.net/wp500/article/details/14122091而生产环境需要使用的是storm的集群环境。
这次使用一台服务器来搭建storm的集群环境,多台服务器的storm集群搭建方法一样。
本人也是刚刚接触storm搭建环境过程是,边读https://github.com/nathanmarz/storm/wiki/Setting-up-a-Storm-cluster 这个文档边操作边写这篇文章,留做之后的备忘。如果有错误还请大家指正,好了闲话少说现在开始。
搭建的步骤:
1.安装zookeeper集群环境
2.安装storm的依赖软件
3.下载storm
4.设置storm配置
5.启动storm集群
安装zookeeper集群环境:
由于写这篇文章是直播。我自己想知道为啥要安装zookeeper呢? 于是停下工作再找找资料看看怎么说
先用官方的一张图来说明storm集群的结构。storm集群中有两种节点:主节点和 工作节点。 这个主节点运行着一个守护进程叫(nimbus)其功能是:发送代码到整个集群,分派任务,监控集群错误。 工作节点运行守护进程叫(supervisor)其功能是:监听着nimbus发送过来的任务,并控制处理进程的开始和停止。
nimbus和supervisor进程间协调是通过zookeeper集群来实现。
http://zookeeper.apache.org/releases.html好了,现在回到zookeeper安装上来,zookeeper下载地址:http://zookeeper.apache.org/releases.html#download
解压到本地之后,修改zookeeper的配置文件,在zookeeper目录conf中,拷贝zoo_sample.cfg到zoo.cfg中并修改zoo.cfg
修改参数:dataDir存放zookeeper运行时保存的文件,默认是保存在/tmp下面。添加集群服务器server.1=127.0.0.1:2888:3888由于是一台服务器就添加一个服务器信息,服务器格式是server.id=[host]:port[:port] 第一个port用来链接leader,第二个端口用来选举leader来用
修改后的配置文件:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/storm/zookeeper-3.4.5/data
clientPort=2181
server.1=2888
配置完成之后启动服务器在zookeeper目录中bin下执行zkServer.sh start
2.安装storm的依赖软件
storm的依赖的列表:
JAVA6
PYTHON2.6.6
Unzip
主要安装的需要ZeroMQ2.1.7和JZMQ
在Storm安装目录下bin目录下有install_zmq.sh执行后可以自动安装,安装的过程如果报错一般由于服务器没有安装依赖的库。不过下载storm应该是第三步的事。
3.下载storm
这个步骤比较简单 下载地址 :http://storm-project.net/downloads.html
最好将storm文件夹下bin加入环境变量PATH中。保证bin/storm可以运行。
4.设置storm配置
修改配置文件storm目录下 conf/storm.yaml 默认的配置在 https://github.com/nathanmarz/storm/blob/master/conf/defaults.yaml
有几个配置需要设定一下:
storm.zookeeper.servers: 设置zookeeper的集群,设置为集群的服务器ip列表
*这个配置文件:后面需要空格否则报错
*如果zookeeper的端口不是默认端口需要设置 storm.zookeeper.port
storm.local.dir:storm集群需要的文件保存地址,设置为指定的一个目录
nimbus.host:配置nimbus服务器地址
########### These MUST be filled in for a storm configuration
storm.zookeeper.servers:
- "127.0.0.1"
# - "server2"
#
storm.local.dir: "/storm/storage"
nimbus.host: "127.0.0.1"
5.启动storm集群
在bin目录下如果之前bin已经加入环境变量PATH中,可以在任何目录下执行:
$storm nimbus启动主服务器
$storm supervisor启动工作服务器
$storm ui 启动监控服务器
可以使用jps查看进程是否已经启动
ui启动之后可以访问 http://ip:8080查看storm状态