Storm的安装部署
自己读了原文根据自己的理解翻译了一部分了,先放上来保存。(很烂,主要是自己看,也希望对别人有一点点儿用,希望读者别被我误导了)。
安装步骤:
1.下载一个发布版本(这里用的是storm-0.6.0),解压到一个目录下,将bin目录添加到系统的PATH环境中。
2.为了可以在一个远程的集群上启动和停止topologies, 通过~/.storm/storm.yaml文件来配置cluster (后面会进一步说明) 。
开发环境介绍:
Storm有两种操作模式:本地模式和远程模式。本地模式下topologies的开发、测试运行可以在一台本地机器上完成,远程模式需要将topologies提交到cluster完成执行。
我们来快速的了解下本机机器和cluster的关系。一个cluster由一个被称作“Nimbus”的主节点所管理。本地机器通过Nimbus将代码(或者jar包)和topologies提交到cluster来执行的,Nimbus来托管这些代码并分配一些works来运行你的topology。本地机器通过一个storm的控制台来和Nimbus通信,这个storm控制台仅仅用于远程模式(本地模式的开发和测试不用它)。
本地客户端安装:
如果你想将topologies通过本地提交到cluster,需要先安装Strom的本地客户端程序。从https://github.com/nathanmarz/storm/downloads下载并解压到你机器上某个目录下,将解压后的bin目录添加到系统PATH中,并且确保bin/storm下面的script可以执行(有执行的权限等)。
安装本地客户端程序只是为了和远程的cluster进行交互。对于本地模式下topologies的代码开发、测试,建议你使用maven来管理,在maven中包含对Strom的依赖。
安装过程:
1)安装leiningen.下载该脚本https://raw.github.com/technomancy/leiningen/stable/bin/lein,加入PATH环境,并确保能运行。
2)使用git将storm-deploy下载下来。
3)运行 lein deps
4)创建一个文件 ~/.pallet/config.clj,来配置AWS上的示例,内容如下:
(defpallet :services { :default { :blobstore-provider "aws-s3" :provider "aws-ec2" :environment {:user {:username "storm" :private-key-path "$YOUR_PRIVATE_KEY_PATH$" :public-key-path "$YOUR_PUBLIC_KEY_PATH$"} :aws-user-id "$YOUR_USER_ID$"} :identity "$YOUR_AWS_ACCESS_KEY$" :credential "$YOUR_AWS_ACCESS_KEY_SECRET$" :jclouds.regions "$YOUR_AWS_REGION$" } })
lein run :deploy --start --name mycluster --release {release version}
lein run :deploy --stop --name mycluster
lein run :deploy --attach --name mycluster
lein run :deploy --ips --name mycluster