storm环境搭建

去storm官网下载响应版本的软件包:http://storm.apache.org/downloads.html
在这里下载的是:
wget http://mirrors.hust.edu.cn/apache/storm/apache-storm-0.9.5/apache-storm-0.9.5.tar.gz

1. 安装storm集群

    1. 搭建Zookeeper集群。(略)
    2. 安装Storm依赖库。
    3. 下载并解压Storm发布版本。
    4.  修改storm.yaml配置文件。
    5.  启动Storm各个后台进程。

2.  安装Storm依赖的库。

接下来,需要在Nimbus和Supervisor机器上安装Storm的依赖库。具体如下:

  1. Java 6  
  2. Python 2.6.6  
   以上依赖库的版本是经过 Storm 测试的, Storm 并不能保证在其他版本的 Java Python 库下可运行。
  1. $ python -V  
  2. Python 2.6.6  

3. 下载并解压Storm发布版本(我使用的是apache-storm-0.9.3)

下一步,需要在 Nimbus Supervisor 机器上安装 Storm 发行版本。

1. 下载Storm发行版本

2. 解压到安装目录下:

[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1.  tar –zvxf apache-storm-0.9.5.tar.gz –C /usr/local/ 
  2. ln -s /usr/local/apache-storm-0.9.5/ /usr/local/storm

3.配置环境变量

[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. vi /etc/profile    
  2. export STORM_HOME==/usr/local/storm    
  3. export PATH=$STORM_HOME/bin:$PATH  

4 修改storm.yaml配置文件

Storm发行版本解压目录下有一个conf/storm.yaml文件,用于配置Storm。默认配置在这里可以查看。conf/storm.yaml中的配置选项将覆盖defaults.yaml中的默认配置。以下配置选项是必须在conf/storm.yaml中进行配置的:

1) storm.zookeeper.servers: Storm集群使用的Zookeeper集群地址,其格式如下:

[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. 我的配置为:  
  2. storm.zookeeper.servers:
  3.     - "master"
  4.     - "slave1"
  5.      - "slave2" 

如果Zookeeper集群使用的不是默认端口,那么还需要storm.zookeeper.port选项

2) storm.local.dir: NimbusSupervisor进程用于存储少量状态,如jarsconfs等的本地磁盘目录,需要提前创建该目录并给以足够的访问权限。然后在storm.yaml中配置该目录,如:mkdir -p /usr/local/storm/data

[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. storm.local.dir: "/usr/local/storm/data"    
  2. 注:需要首先创建data目录  

3) nimbus.host: Storm集群Nimbus机器地址,各个Supervisor工作节点需要知道哪个机器是Nimbus,以便下载Topologiesjarsconfs等文件,如:

[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. 我的配置:
  2. nimbus.host: "master" 

4) supervisor.slots.ports对于每个Supervisor工作节点,需要配置该工作节点可以运行的worker数量。每个worker占用一个单独的端口用于接收消息,该配置选项即用于定义哪些端口是可被worker使用的。默认情况下,每个节点上可运行4workers,分别在6700670167026703端口,如:

[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. supervisor.slots.ports:    
  2.     - 6700    
  3.     - 6701    
  4.     - 6702     
  5.     - 6703  

2.5 启动Storm各个后台进程

最后一步,启动Storm的所有后台进程。和Zookeeper一样,Storm也是快速失败(fail-fast)的系统,这样Storm才能在任意时刻被停止,并且当进程重启后被正确地恢复执行。这也是为什么Storm不在进程内保存状态的原因,即使NimbusSupervisors被重启,运行中的Topologies不会受到影响。

以下是启动Storm各个后台进程的方式:

  1. Nimbus: 在Storm主控节点上运行 "storm nimbus &" 启动Nimbus后台程序,并放到后台执行;
  2. Supervisor: 在Storm各个工作节点上运行" storm supervisor &"启动Supervisor后台程序,并放到后台执行;
  3. UI: 在Storm主控节点上运行 "storm ui &" 启动UI后台程序,并放到后台执行,启动后可以通过http://127.0.0.1:8080/index.html观察集群的worker资源使用情况、Topologies的运行状态等信息。

注意事项:

  1. Storm后台进程被启动后,将在Storm安装部署目录下的logs/子目录下生成各个进程的日志文件。
  2. 经测试,Storm UI必须和Storm Nimbus部署在同一台机器上,否则UI无法正常工作,因为UI进程会检查本机是否存在Nimbus链接。
  3. 为了方便使用,可以将bin/storm加入到系统环境变量中。

至此,Storm集群已经部署、配置完毕,可以向集群提交拓扑运行了。



启动过程中报错
19:39:49,036 |-ERROR in ch.qos.logback.core.rolling.RollingFileAppender[METRICS] - openFile(/metrics.log,true) call failed. java.io.FileNotFoundException: /metrics.log (Permission denied)
	at java.io.FileNotFoundException: /metrics.log (Permission denied)
	at 	at java.io.FileOutputStream.openAppend(Native Method)
	at 	at java.io.FileOutputStream.<init>(FileOutputStream.java:192)
	at 	at ch.qos.logback.core.recovery.ResilientFileOutputStream.<init>(ResilientFileOutputStream.java:28)

原因是storm.yaml配置的时候格式没有写正确。

注意:冒号和小横线后面一定要有空格,不然总是会出现读取配置文件出错的异常。


参考:

1. http://blog.csdn.net/wulantian/article/details/46894727

2.http://www.centoscn.com/image-text/install/2016/0320/6868.html


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值