10、单机版安装指南
环境:centos 6.4
安装步骤请参考:http://blog.sina.com.cn/s/blog_546abd9f0101cce8.html
要注意上面的本地模式运行WordCount其实并没有使用到上述安装的工具,只是一个storm的虚拟环境下测试demo。那我们怎样将程序运行在刚刚搭建的单机版的环境里面呢,
很简单,官方的例子:
注意看官方实例中WordCountTopology类如果不带参数其实是执行的本地模式,也就是刚说的虚拟的环境,带上参数就是将jar发送到了storm执行了。
首先弄好环境:
启动zookeeper:
/usr/local/zookeeper/bin/zkServer.sh
配置storm:
文件在/usr/local/storm/conf/storm.yaml
内容:
这个脚本文件写的不咋地,所以在配置时一定注意在每一项的开始时要加空格,冒号后也必须要加空格,否则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/storm nimbus(启动主节点)
# bin/storm supervisor(启动从节点)
执行命令:# storm jar StormStarter.jar storm.starter.WordCountTopology test
此命令的作用就是用storm将jar发送给storm去执行,后面的test是定义的toplogy名称。
搞定,任务就发送到storm上运行起来了,还可以通过命令:
# bin/storm ui
然后执行 jps 会看到 3 个进程:zookeeper 、nimbus、
启动ui,可以通过浏览器, ip:8080/ 查看运行i情况。
配置后,执行
也许会报:java.lang.NoClassDefFoundError: clojure.core.protocols$seq_reduce
这是由于我使用了 oracle JDK 1.7 的缘故,换成 open JDK 1.6 就正常了,
1 | su -c "yum install java-1.6.0-openjdk-devel" |
具体参考:https://github.com/technomancy/leiningen/issues/676
测试代码:
https://github.com/storm-book/examples-ch02-getting_started
运行结果:
其它参考地址:
https://github.com/philipgao/storm-demo
http://tianhailong.com/本地模式运行storm的demo.html/运行日志
http://blog.sina.com.cn/s/blog_8ae7b3fe010124mr.html
分布式安装指南:
storm wiki 教程: