storm0.9.0.1安装
storm 0.9.x的好处是引入了netty进行网络传输(需要配置),不用再依赖zeromq和jzmq了
1.下载安装zookeeper
...
2.下载安装storm依赖库
JDK1.6及以上
...
python2.6.6及以上
...
3.下载storm
配置con/storm.yaml
storm.zookeeper.servers: - "master" - "slave1" storm.zookeeper.port: 2181 storm.local.dir: "/data/storm-0.9.0.1/data" nimbus.host: "master" ui.port: 18080 supervisor.slots.ports: - 6700 - 6701 - 6702 - 6703 storm.messaging.transport: "backtype.storm.messaging.netty.Context" storm.messaging.netty.server_worker_threads: 1 storm.messaging.netty.client_worker_threads: 1 storm.messaging.netty.buffer_size: 5242880 storm.messaging.netty.max_retries: 100 storm.messaging.netty.max_wait_ms: 1000 storm.messaging.netty.min_wait_ms: 100 supervisor.childopts: "-Xms1024m -Xmx1024m" worker.childopts: "-Xms1024m -Xmx2048m" nimbus.childopts: "-Xms1024m -Xmx1024m"
4,启动
bin/storm nimbus bin/storm supervisor bin/storm ui
5.测试
storm任务的启动
bin/storm jar xxx/xxxx.jar org.admln.xxx.xxxTopology nimbushost
最后一个参数是指定nimbus的主机地址,如果是本地测试运行,则不需要传
storm任务的销毁
执行kill命令时可以通过-w [等待秒数]指定拓扑停用以后的等待时间
bin/storm kill topology-name
拓扑的停止
storm deactivte topology-name
停止的拓扑的启动
storm activate topology-name
再平衡使你重分配集群任务。这是个很强大的命令。比如,你向一个运行中的集群增加了节点。再平衡命令将会停用拓扑,然后在相应超时时间之后重分配工人,并重启拓扑。
再平衡拓扑:
storm rebalance topology-name
storm后台进程的停止
kill -9 xxx
-_-!
如果要更新一个任务的话现在唯一的办法就是先把它杀掉,然后重新添加改后的
未来storm打算使用storm swap命令来更新任务
任务的监控就是常见的UI和日志两方面了
storm的配置有系统配置和组件配置两个层面
1.系统配置就是conf/storm.yaml里面的配置
2.组件配置就是给特定的Topology特定的配置,只对此Topology有效
topology的特定配置可以通过
- "topology.debug"
- "topology.max.spout.pending"
- "topology.max.task.parallelism"
这样的行为指定,必须以topology开头
spout和bolt的内部配置可以通过重写getComponentConfiguration方法来指定或者在topologyBuilder的setSpout和setBolt方法的后面加上addConfiguration
或者 addConfigurations方法
欲为大树,何与草争;心若不动,风又奈何。