共计 1206 个字符,预计需要花费 4 分钟才能阅读完成。
这篇文章介绍了如何配置一个 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 的信息看这里。