# **安装Storm客户端**
Storm客户端能让我们使用命令管理集群中的拓扑。按照以下步骤安装Storm客户端:
1. 从Storm站点下载最新的稳定版本([https://github.com/nathanmarz/storm/downloads](http://github.com/nathan%20marz/storm/downloads "(https://github.com/nathan marz/storm/downloads"))当前最新版本是storm-0.8.1。(译者注:原文是storm-0.6.2,不过翻译的时候已经是storm-0.8.1了)!
2. 把下载的文件解压缩到*/usr/local/bin/storm*的Storm共享目录。
3. 把Storm目录加入PATH环境变量,这样就不用每次都输入全路径执行Storm了。如果我们使用了*/usr/local/bin/storm*,执行*export PATH=$PATH:**/usr/local/bin/storm*。
4. 最后,创建Storm本地配置文件:*~/.storm/storm.yaml*,在配置文件中按如下格式加入*nimbus*主机:
nimbus.host:"我们的nimbus主机"
现在,你可以管理你的Storm集群中的拓扑了。
**NOTE:**Storm客户端包含运行一个Storm集群所需的所有Storm命令,但是要运行它你需要安装一些其它的工具并做一些配置。详见[附录B](http://ifeve.com/getting-started-with-storm-appendixB)。
有许多简单且有用的命令可以用来管理拓扑,它们可以提交、杀死、禁用、再平衡拓扑。
**jar**命令负责把拓扑提交到集群,并执行它,通过**StormSubmitter**执行主类。
~~~
storm jar path-to-topology-jar class-with-the-main arg1 arg2 argN
~~~
path-to-topology-jar是拓扑jar文件的全路径,它包含拓扑代码和依赖的库。 class-with-the-main是包含main方法的类,这个类将由StormSubmitter执行,其余的参数作为main方法的参数。
我们能够挂起或停用运行中的拓扑。当停用拓扑时,所有已分发的元组都会得到处理,但是*spouts*的**nextTuple**方法不会被调用。
停用拓扑:
~~~
storm deactivte topology-name
~~~
启动一个停用的拓扑:
~~~
storm activate topology-name
~~~
销毁一个拓扑,可以使用**kill**命令。它会以一种安全的方式销毁一个拓扑,首先停用拓扑,在等待拓扑消息的时间段内允许拓扑完成当前的数据流。
杀死一个拓扑:
~~~
storm kill topology-name
~~~
**NOTE:**执行kill命令时可以通过**-w [等待秒数]**指定拓扑停用以后的等待时间。
再平衡使你重分配集群任务。这是个很强大的命令。比如,你向一个运行中的集群增加了节点。再平衡命令将会停用拓扑,然后在相应超时时间之后重分配工人,并重启拓扑。
再平衡拓扑:
~~~
storm rebalance topology-name
~~~
~~~
NOTE:执行不带参数的Storm客户端可以列出所有的Storm命令。完整的命令描述请见:https://github.com/nathanmarz/storm/wiki/Command-line-client。
~~~