1搭建zk
2安装storm依赖的软件包
(zeroMQ是一个消息处理队列,可在多个线程,内核和主机盒之间弹性伸缩;
JZMQ底层消息队列
java
Python
unzip
)
3安装及配置storm
wget ....
tar -xzvf zeromq.tar.gz
cd zeromq
./configure
make
sudo make install
//最好搭建的时候用root用户来装,使用的时候用普通账户来使用
//jzmq安装
git clone ........jzmq.git
cd jzmq
./autogen.sh
./configure
make
sudo make install
如果没有git,你可以yum list *git*
就可以列出可以下载的资源
然后你自己下载就可以了
yum install -y ....
通常需要的有几个包会报错,就需要装
yum install -y uuid-devel.x86_64
yum install -y libuuid-devel.x86_64
yum install -y libtool.x86_64
yum install -y git.x86_64
yum install -y gcc-c++.x86_64
cd storm
conf/storm.yaml配置文件中增加,以空格开头:
storm.zookeeper.servers:
-"master"
storm.zookeeper.port: 2181
nimbus.host:"master"
storm.local.dir:"/root/software/storm-0.9.0.1/data"
supervisor.slots.ports:
-6700
-6701
-6702
-6703
java.library.path:/usr/local/lib:/opt/local/lib:/usr/lib默认
ui.port:8081
通常情况下我们会用nohup方式把它挂到后台执行
nohup ./storm nimbus &
nohup ./storm ui &
cd ../logs //通过logs目录追踪日志
tail -f nimbus.log
在slaves端也起起来,用nohup方式把它挂到后端
nohup ./storm supervisor $
追踪下日志
cd ../logs
ls -lt
当然也可以在nimbus那台机器上也启动supervisor也是可以的
也就是说同一台机器可以有两个角色
每个slot可以承载一个worker,worker可以理解为一个进程,每个进程就是一个worker,比如说blot,spout
worker下边就是很多task,也就是worker下边可以有很多任务
storm还有个thrif,因为storm支持多语言开发,它就是通过thrif协议支撑多语言提交拓扑
storm的一些参数
storm.zookeeper.servers:这是一个为storm集群配置的zk集群主机列表
storm.local.dir nimbus和supervisor守护程序需要一个本地磁盘目录存储小量状态(像jars,confs,其他),每台机器创建这些目录,赋予可写权限
java.library.path 这是storm使用的本地库(ZeroMQ和JZMQ)载入路径。大多数安装默认路径:/usr/local/lib:/opt/local/lib:/usr/lib就行,所以你可能不需要配置它
supervisor.slots.ports 每一台worker机器,你用这个配置来指定多少workers运行在那台机器,每个worker使用单一端口接收信息,并且这个设置定义哪个端口是打开的且可以使用,如果你定义5个端口,那么storm将在这台机器分配5个worker运行
启动命令:
bin/storm nimbus 在master机器的supervision下运行
bin/storm supervisor 在每个worker机器的supervision下运行。。supervisor守护进程负责starting和stopping那台机器上的worker进程
bin/storm ui 你就可以从浏览器访问一个站点,它提供集群和topologies的诊断信息