这篇文章介绍了如何配置一个storm的开发环境, 总的来看有下面几个步骤:
- 下载storm的release版本, 解压,并且把bin/目录加到环境变量PATH里面去。
- 为了让我们可以启动/停止远端storm集群上的topology, 把集群的信息配置在
~/.storm/storm.yaml
里面。
下面具体介绍。
storm开发环境到底是个什么样子
storm有两种操作模式: 本地模式和远程模式。使用本地模式的时候,你可以在你的本地机器上开发测试你的topology, 一切都在你的本地机器上模拟出来; 用远端模式的时候你提交的topology会在一个集群的机器上执行。
一个storm开发环境安装了你使用本地模式开发测试topology; 把topology打包以部署到远端的集群; 提交,终止远端集群上的topology所需要的一切东西。
让我们快速看一下你的机器和远端storm集群之间的关系。storm集群是被一个称作Nimbus的控制节点所管理的。你的机器与nimbus通信以提交topology的代码,运行这个topology,而nimbus会自动在集群内部分发你的topology代码, 分配任务给各个机器。你的机器使用一个称为storm的客户端去和nimbus通信。storm只有在远程模式的时候才有用; 对于用本地模式开发、测试topology来说是没什么用的。
在本地机器安装一个storm
如果你想从你的机器提交topology给远端的storm集群, 你应该在你的本地安装一个storm发行版。安装了storm发行版之后你会得到你和远端集群通信的工具: storm。为了在本地安装storm, 从这里下载代码,并且把它解压到你机器上的一个目录。然后把bin/目录添加到环境变量PATH里面去并且使bin/storm有可执行权限。
安装一个storm发行版只是用来和远端storm集群通信用的。而为了用本地模式开发测试topology, 我们推荐你使用maven来把storm作为你的项目的一个dev依赖。关于使用Maven开发storm项目可以看这篇文章:Maven。
在一个远端集群里面启动/终止topology
前面一个步骤在你的机器上安装了可以和远端集群通信用的storm客户端。现在你只需要告诉你的storm客户端和哪个集群进行通信。把你集群的控制节点的地址指定在~/.storm/storm.yaml里面就可以了:
1 | nimbus.host: "123.45.678.890" |
---|
或者你也可以使用storm-deploy项目来操作AWS上面的storm集群, 它会自动设置好你的~/.storm/storm.yaml
文件。你可以手动“添加”一个集群(或者在多个集群之间进行切换) — 使用”attach”命令:
1 | lein run :deploy --attach --name mystormcluster |
---|
更多关于storm-deploy的信息看这里。