Storm的安装部署

自己读了原文根据自己的理解翻译了一部分,先放上来保存。(主要是自己看,也希望对别人有一点点儿用)。

[b]安装步骤:[/b]
1. 下载一个发布版本(这里用的是storm-0.6.0),解压到一个目录下,将bin目录添加到系统的PATH环境中。
2. 为了可以在一个远程的集群上启动和停止topologies, 通过~/.storm/storm.yaml文件来配置cluster (后面会进一步说明) 。

[b]开发环境介绍:[/b]
Storm有两种操作模式:本地模式和远程模式。本地模式下topologies的开发、测试运行可以在一台本地机器上完成,远程模式需要将topologies提交到cluster完成执行。
我们来快速的了解下本机机器和cluster的关系。一个cluster由一个被称作“Nimbus”的主节点所管理。本地机器通过Nimbus将代码(或者jar包)和topologies提交到cluster来执行的,Nimbus来托管这些代码并分配一些works来运行你的topology。本地机器通过一个storm的控制台来和Nimbus通信,这个storm控制台仅仅用于远程模式(本地模式的开发和测试不用它)。

[b]本地客户端安装:[/b]
如果你想将topologies通过本地提交到cluster,需要先安装Strom的本地客户端程序。从[url]https://github.com/nathanmarz/storm/downloads[/url]下载并解压到你机器上某个目录下,将解压后的bin目录添加到系统PATH中,并且确保bin/storm下面的script可以执行(有执行的权限等)。
安装本地客户端程序只是为了和远程的cluster进行交互。对于本地模式下topologies的代码开发、测试,建议你使用maven来管理,在maven中包含对Strom的依赖。

[b]安装过程:[/b]
1) 安装leiningen.下载该脚本[url]https://raw.github.com/technomancy/leiningen/stable/bin/lein[/url],加入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$"
}
})

配置说明:
A. 在每个节点上设置生成ssh公、私钥,公钥的路径必须是私钥路径+ “.pub”。在Linux上,还需要一个null护照。
B. aws-user-id:可以在你帐户(Git?)的管理页面找到。它是一个数字序列,将它放到上面这个配置文件中。
C. Identity: AWS的访问key。
D. Credential:AWS访问key的密码。
5) 修改conf/clusters.yaml。可以修改zookeeper nodes 和 supervisor nodes的数量通过修改zookeeper.count 或者supervisor.count。可以通过修改supervisor.spot.price来启动supervisor nodes的spot实例
6) (可选项)cluster的一些用户配置项通过修改conf/storm.yaml来完成,比如:超时时间、客户注册序列..

[b]启动clusters:[/b]
执行命令:
lein run :deploy --start --name mycluster --release {release version}

--name 参数用来给cluster指定一个名字,然后根据这个名字连接或者停掉它。省略的话,默认为“dev”。
--release参数标识当前使用的版本,缺省为主分支版本,强烈建议加上。
这个过程会设置Zookeeper,设置Nimbus,在端口8080启动Storm UI,在Nimbus端口3772上启动DRPC服务,设置Supervious,设置安全许可,并且将你的机器连接到cluster。

[b]停止clusters:[/b]
lein run :deploy --stop --name mycluster


[b]连接cluster:[/b]
lein run :deploy --attach --name mycluster

连接前需要:
1. 将Nimbus的地址写入到~/.storm/storm.yaml中,这样客户端才指定要连接的cluster是哪一个(例如:nimbus.host: "123.45.678.890" )。
2. 可以访问Nimbus的守护进程提供的Thrift端口(用来提交topologies)(thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发。)
3. 可以访问Storm UI在Nimbus的8080端口
4. 可以访问Ganglia在Nimbus的80端口。

[b]获取cluster nodes的ip:[/b]
lein run :deploy --ips --name mycluster


[b]Ganglia[/b]
可以通过浏览器来访问:
http://{nimbus ip}/ganglia/index.php
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值