storm集群安装
虚拟linux环境安装
第一步:安装zookeeper3.4.5
自动下载:wgethttp://ftp.meisei-u.ac.jp/mirror/apache/dist/zookeeper/zookeeper-3.4.5/zookeeper-3.4.5.tar.gz
手动下载:http://mirrors.cnnic.cn/apache/zookeeper/stable/
tar-xvfzookeeper-3.4.5.tar.gz
vi.bash_profile
exportZOOKEEPER_HOME=/home/tp/zookeeper-3.4.5
exportPATH=$PATH:$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin
mvzoo_sample.cfgzoo.cfg
vizoo.cfg
dataDir=/home/tp/zookeeper-3.4.5/data
启动zookeeper
netstat-an|grep2181#查看zookeeper端口
netstat-nat#查看端口信息
./zkServer.shstart#启动
jps#查看启动的服务名称
./zkServer.shstop#关闭
启动后要检查Zookeeper是否已经在服务,可以通过netstat-at|grep2181命令查看是否有clientPort端口号在监听服务。
第二步:安装ZMQ2.1.7
wgethttp://download.zeromq.org/zeromq-2.1.7.tar.gz
tar-xvfzeromq-2.1.7.tar.gz
cdzeromq-2.1.7
./configure
make,若报错,先安装
sudomakeinstall
第三步:安装jzmq
gitclonehttps://github.com/nathanmarz/jzmq.git
cdjzmq
./autogen.sh
autogen.sh:error:couldnotfindpkg-config.pkg-configisrequiredtorunautogen.sh
sudoapt-getinstallpkg-config
./configure
make
具体的make错误信息:
make[1]:***Noruletomaketarget`classdist_noinst.stamp',
neededby`org/zeromq/ZMQ.class'.Stop.
touchsrc/classdist_noinst.stamp
make[1]:***Noruletomaketarget`org/zeromq/ZMQ$Context.class',neededby`all'.Stop.
cdsrc
javac-d.org/zeromq/*.java
sudomakeinstall
第四步,安装Storm
unzipstorm-0.8.2.zip
mvstorm-0.8.2/usr/local/
ln-s/home/tp/storm-0.8.2//home/tp/storm建立软连接
vim/etc/profile
exportSTORM_HOME=/home/tp/storm-0.8.2
exportPATH=$PATH:$STORM_HOME/bin
1.启动zookeeper./zkServer.shstart#启动
2.配置storm:
文件在/home/tp/storm-0.8.2/conf/storm.yaml
内容:
storm.zookeeper.servers:
-127.0.0.1
storm.zookeeper.port:2181
nimbus.host:"127.0.0.1"
storm.local.dir:"/home/tp/storm-0.8.2/tmp/storm"
supervisor.slots.ports:
-6700
-6701
-6702
-6703
配置时一定注意在每一项的开始时要加空格,冒号后也必须要加空格,否则storm就不认识这个配置文件了。
说明一下:storm.local.dir表示storm需要用到的本地目录。nimbus.host表示那一台机器是master机器,即nimbus。storm.zookeeper.servers表示哪几台机器是zookeeper服务器。storm.zookeeper.port表示zookeeper的端口号,这里一定要与zookeeper配置的端口号一致,否则会出现通信错误,切记切记。当然你也可以配superevisor.slot.port,supervisor.slots.ports表示supervisor节点的槽数,就是最多能跑几个worker进程(每个sprout或bolt默认只启动一个worker,但是可以通过conf修改成多个)。
执行:
#bin/stormnimbus(启动主节点)
#bin/stormsupervisor(启动从节点)
执行命令:#stormjarStormStarter.jarstorm.starter.WordCountTopologytest
此命令的作用就是用storm将jar发送给storm去执行,后面的test是定义的toplogy名称。
搞定,任务就发送到storm上运行起来了,还可以通过命令:
#bin/stormui
启动ui,可以通过ip:8080/查看运行i情况。
启动Storm各个后台进程
最后一步,启动Storm的所有后台进程。和Zookeeper一样,Storm也是快速失败(fail-fast)的系统,这样Storm才能在任意时刻被停止,并且当进程重启后被正确地恢复执行。这也是为什么Storm不在进程内保存状态的原因,即使Nimbus或Supervisors被重启,运行中的Topologies不会受到影响。
以下是启动Storm各个后台进程的方式:
Nimbus:在Storm主控节点上运行"bin/stormnimbus>/dev/null2>&1&"启动Nimbus后台程序,并放到后台执行;
Supervisor:在Storm各个工作节点上运行"bin/stormsupervisor>/dev/null2>&1&"启动Supervisor后台程序,并放到后台执行;
UI:在Storm主控节点上运行"bin/stormui>/dev/null2>&1&"启动UI后台程序,并放到后台执行,启动后可以通过http://{nimbushost}:8080观察集群的worker资源使用情况、Topologies的运行状态等信息。
注意事项:
Storm后台进程被启动后,将在Storm安装部署目录下的logs/子目录下生成各个进程的日志文件。
为了方便使用,可以将bin/storm加入到系统环境变量中。
至此,Storm集群已经部署、配置完毕,可以向集群提交拓扑运行了。