Storm+AWS

安装步骤:
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上的示例,内容如下:

Java代码  收藏代码
  1. (defpallet  
  2.   :services  
  3.   {  
  4.    :default {  
  5.              :blobstore-provider "aws-s3"  
  6.              :provider "aws-ec2"  
  7.              :environment {:user {:username "storm"  
  8.                                   :private-key-path "$YOUR_PRIVATE_KEY_PATH$"  
  9.                                   :public-key-path "$YOUR_PUBLIC_KEY_PATH$"}  
  10.                            :aws-user-id "$YOUR_USER_ID$"}  
  11.              :identity "$YOUR_AWS_ACCESS_KEY$"  
  12.              :credential "$YOUR_AWS_ACCESS_KEY_SECRET$"  
  13.              :jclouds.regions "$YOUR_AWS_REGION$"  
  14.              }  
  15.     })  


配置说明:
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来完成,比如:超时时间、客户注册序列..

启动clusters:
执行命令:

Java代码  收藏代码
  1. lein run :deploy --start --name mycluster --release {release version}  


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

停止clusters:

Java代码  收藏代码
  1. lein run :deploy --stop --name mycluster  



连接cluster:

Java代码  收藏代码
  1. 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端口。

获取cluster nodes的ip:

Java代码  收藏代码
  1. lein run :deploy --ips --name mycluster  



Ganglia
可以通过浏览器来访问:
http://{nimbus ip}/ganglia/index.php

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值