FW:分布式实时计算storm 原理…
2014-01-15 12:23
435 查看
http://my.oschina.net/leejun2005/blog/147607?from=20130804
6.4
安装步骤请参考:http://blog.sina.com.cn/s/blog_546abd9f0101cce8.html
要注意上面的本地模式运行WordCount其实并没有使用到上述安装的工具,只是一个storm的虚拟环境下测试demo。那我们怎样将程序运行在刚刚搭建的单机版的环境里面呢,
很简单,官方的例子:
注意看官方实例中WordCountTopology类如果不带参数其实是执行的本地模式,也就是刚说的虚拟的环境,带上参数就是将jar发送到了storm执行了。
首先弄好环境:
启动zookeeper:
/usr/local/zookeeper/bin/zkServer.sh
单机版直接启动,不用修改什么配置,如集群就需要修改zoo.cfg另一篇文章会讲到。
配置storm:
文件在/usr/local/storm/conf/storm.yaml
内容:
storm.zookeeper.servers:
-127.0.0.1
storm.zookeeper.port: 2181
nimbus.host: "127.0.0.1"
storm.local.dir: "/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/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、 supervisor
启动ui,可以通过浏览器, ip:8080/ 查看运行i情况。
配置后,执行 storm jar sm.jar
main.java.TopologyMain words.txt
也许会报:java.lang.NoClassDefFoundError:
clojure.core.protocols$seq_reduce
这是由于我使用了 oracle JDK 1.7
的缘故,换成 open JDK 1.6 就正常了,
具体参考:https://github.com/technomancy/leiningen/issues/676
测试代码:
https://github.com/storm-book/examples-ch02-getting_started
运行结果:
storm
jar sm.jar main.java.TopologyMain
words.txt
02
...
6020 [main] INFO
backtype.storm.messaging.loader
- Shutdown receiving-thread:
[Getting-Started-Toplogie-1-1374946750, 4]
6020 [main] INFO
backtype.storm.daemon.worker -
Shut down receive thread
6020 [main] INFO
backtype.storm.daemon.worker -
Terminating zmq context
6020 [main] INFO
backtype.storm.daemon.worker -
Shutting down executors
OK:is
6021 [main] INFO
backtype.storm.daemon.executor
- Shutting down executor word-counter:[2
2]
OK:an
OK:storm
OK:simple
6023 [Thread-16]
INFO backtype.storm.util -
Async loop interrupted!
OK:application
OK:but
OK:very
OK:powerfull
OK:really
OK:
OK:StOrm
OK:is
OK:great
6038 [Thread-15]
INFO backtype.storm.util -
Async loop interrupted!
-- Word Counter
[word-counter-2] --
really:1
but:1
application:1
is:
2
great:
2
are:1
test:1
simple:1
an:1
powerfull:1
storm:
3
very:1
6043 [main] INFO
backtype.storm.daemon.executor
- Shut down executor word-counter:[2
2]
6044 [main] INFO
backtype.storm.daemon.executor
- Shutting down executor word-normalizer:[3
3]
6045 [Thread-18]
INFO backtype.storm.util -
Async loop interrupted!
6052 [Thread-17]
INFO backtype.storm.util -
Async loop interrupted!
6056 [main] INFO
backtype.storm.daemon.executor
- Shut down executor word-normalizer:[3
3]
6056 [main] INFO
backtype.storm.daemon.executor
- Shutting down executor word-reader:[4
4]
6058 [Thread-19]
INFO backtype.storm.util -
Async loop interrupted!
...
其它参考地址:
https://github.com/philipgao/storm-demo http://tianhailong.com/本地模式运行storm的demo.html/运行日志 http://blog.sina.com.cn/s/blog_8ae7b3fe010124mr.html
分布式安装指南: http://hitina.lofter.com/post/a8c5e_136579#
storm wiki
教程: http://xumingming.sinaapp.com/138/twitter-storm入门/
10、单机版安装指南
环境:centos6.4
安装步骤请参考:http://blog.sina.com.cn/s/blog_546abd9f0101cce8.html
要注意上面的本地模式运行WordCount其实并没有使用到上述安装的工具,只是一个storm的虚拟环境下测试demo。那我们怎样将程序运行在刚刚搭建的单机版的环境里面呢,
很简单,官方的例子:
注意看官方实例中WordCountTopology类如果不带参数其实是执行的本地模式,也就是刚说的虚拟的环境,带上参数就是将jar发送到了storm执行了。
首先弄好环境:
启动zookeeper:
/usr/local/zookeeper/bin/zkServer.sh
单机版直接启动,不用修改什么配置,如集群就需要修改zoo.cfg另一篇文章会讲到。
配置storm:
文件在/usr/local/storm/conf/storm.yaml
内容:
storm.zookeeper.servers:
-127.0.0.1
storm.zookeeper.port: 2181
nimbus.host: "127.0.0.1"
storm.local.dir: "/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/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、 supervisor
启动ui,可以通过浏览器, ip:8080/ 查看运行i情况。
配置后,执行 storm jar sm.jar
main.java.TopologyMain words.txt
也许会报: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/storm-book/examples-ch02-getting_started
运行结果:
storm
jar sm.jar main.java.TopologyMain
words.txt
02
...
6020 [main] INFO
backtype.storm.messaging.loader
- Shutdown receiving-thread:
[Getting-Started-Toplogie-1-1374946750, 4]
6020 [main] INFO
backtype.storm.daemon.worker -
Shut down receive thread
6020 [main] INFO
backtype.storm.daemon.worker -
Terminating zmq context
6020 [main] INFO
backtype.storm.daemon.worker -
Shutting down executors
OK:is
6021 [main] INFO
backtype.storm.daemon.executor
- Shutting down executor word-counter:[2
2]
OK:an
OK:storm
OK:simple
6023 [Thread-16]
INFO backtype.storm.util -
Async loop interrupted!
OK:application
OK:but
OK:very
OK:powerfull
OK:really
OK:
OK:StOrm
OK:is
OK:great
6038 [Thread-15]
INFO backtype.storm.util -
Async loop interrupted!
-- Word Counter
[word-counter-2] --
really:1
but:1
application:1
is:
2
great:
2
are:1
test:1
simple:1
an:1
powerfull:1
storm:
3
very:1
6043 [main] INFO
backtype.storm.daemon.executor
- Shut down executor word-counter:[2
2]
6044 [main] INFO
backtype.storm.daemon.executor
- Shutting down executor word-normalizer:[3
3]
6045 [Thread-18]
INFO backtype.storm.util -
Async loop interrupted!
6052 [Thread-17]
INFO backtype.storm.util -
Async loop interrupted!
6056 [main] INFO
backtype.storm.daemon.executor
- Shut down executor word-normalizer:[3
3]
6056 [main] INFO
backtype.storm.daemon.executor
- Shutting down executor word-reader:[4
4]
6058 [Thread-19]
INFO backtype.storm.util -
Async loop interrupted!
...
其它参考地址:
https://github.com/philipgao/storm-demo http://tianhailong.com/本地模式运行storm的demo.html/运行日志 http://blog.sina.com.cn/s/blog_8ae7b3fe010124mr.html
分布式安装指南: http://hitina.lofter.com/post/a8c5e_136579#
storm wiki
教程: http://xumingming.sinaapp.com/138/twitter-storm入门/
相关文章推荐
- FW:分布式实时计算storm 原理…
- FW:分布式实时计算storm 原理…
- FW:分布式实时计算storm 原理…
- FW:分布式实时计算storm 原理…
- 实时可靠的开源分布式实时计算系统——Storm
- FW: WebGIS设计与实现原理 - ATL S…
- (第8篇)实时可靠的开源分布式实时计算系统——Storm
- 从Storm和Spark 学习流式实时分布式计算的设计
- Storm分布式实时流计算框架相关技术总结
- Storm 实时计算分布式锁 Curator的使用
- (第8篇)实时可靠的开源分布式实时计算系统——Storm
- Storm是一个分布式的、高容错的实时计算系统。
- 学习总结十五:分布式实时计算系统storm简介
- Storm实时分布式计算系统简介
- 一脸懵逼学习Storm的搭建--(一个开源的分布式实时计算系统)
- 一脸懵逼学习Storm---(一个开源的分布式实时计算系统)
- 从Storm和Spark 学习流式实时分布式计算的设计
- 一脸懵逼学习Storm---(一个开源的分布式实时计算系统)
- 从Storm和Spark 学习流式实时分布式计算的设计
- 实时可靠的开源分布式实时计算系统——Storm