原文:http://my.oschina.net/BreathL/blog/84165
最近自己尝试搭建了一下Twitter Storm的集群,参考了很多网友的博客,特别是徐明明的;这里只对自己搭建时的过程和所遇到的问题做一个小总结,方便查阅。
Storm是Twitter开源的一个实时计算框架,它需要依赖Zookeeper,ZeroMQ;同时还需要你的系统环境中有Java和Python。所以整个搭建步骤如下:
- 搭建Zookeeper集群。
- 在控制节点机[ Nimbus ]和工作节点机[ Supervisor ]上安装相同的环境(ZeroMQ,JZMQ,Java,Python等)
- 在控制节点机[ Nimbus ]和工作节点机[ Supervisor ]上安装Storm框架
- 配置Storm,通过storm.yaml文件
- 用命令启动Storm(需要分别启动Nimbus、Supervisor、ui)
Zookeeper集群搭建
由于系统环境中已经有同事搭建好了Zookeeper的集群,所以我没自己手动实现过,就不做介绍了,直接给出 贱客的一篇博客http://www.oschina.net/question/54100_10242
依赖环境的部署
这节主要介绍ZeroMQ,JZMQ的部署(Java和Python的安装就不总结了,网上很多)
首先是ZeroMQ:Storm所需的版本是 ZeroMQ 2.1.7,你可以通过执行如下命令安装:
1 | wget http://download.zeromq.org/zeromq-2.1.7. tar .gz |
2 | tar -xzf zeromq-2.1.7. tar .gz |
3 | cd zeromq-2.1.7 |
4 | ./configure |
5 | make |
6 | sudo make install |
接下来是JZMQ,它是Java绑定的ZeroMQ,再安装之前请保证Java已经安装好了,可以通过执行如下命令安装JZMQ
1 | git clone https://github.com/nathanmarz/jzmq.git |
2 | cd jzmq |
3 | ./autogen.sh |
4 | ./configure |
5 | make |
6 | sudo make install |
Storm的安装
从这里 下载Storm的包,并解压到你需要安装的目录下即可。
Storm的配置
配置主要是通过storm.yaml文件,对系统中各个组件做说明;以下是Storm中必须有的配置及说明:
1. storm.zookeeper.servers :指定Storm系统所使用的Zookeeper的地址
1 | storm.zookeeper.servers: |
2 | - "111.222.333.444" |
3 | - "555.666.777.888" |
2. storm.local.dir :Storm 的一些配置文件或架包,或日志存放的地方,注意这个目录下,你一定要保证你有权限生成文件,否则会报错,配置如下:
1 | storm. local . dir : "/mnt/storm" |
3. java.library.path :这是storm所依赖的本地依赖(ZeroMQ和JZMQ)的加载地址, 默认的是:/usr/local/lib:/opt/local/lib:/usr/lib, 大多情况下是对的,所以你应该不用更改这个配置。
4. nimbus.host:是控制节点的指定,所有工作机都需要知道谁是控制节点,才能从它那拿Jar包
1 | nimbus.host: "111.222.333.44" |
1 | supervisor.slots.ports: |
2 | - 6700 |
3 | - 6701 |
4 | - 6702 |
5 | - 6703 |
1 | ui.port: 8080 |
启动Storm
通过执行如下命令分别启动Nimbus、Supervisor、ui
1 | storm nimbus |
2 | storm supervisor |
3 | storm ui |
最后如果程序出错,在你storm的解压目录下的logs里, 分别会生成nimbus、supervisor、ui目录,里面有各种的日志文件,用于记录异常信息,你可以查阅。
参考资料:
Installing native dependencies
https://github.com/nathanmarz/storm/blob/master/conf/defaults.yaml