Storm流式实时计算开源框架(三)

本文详细介绍了如何搭建TwitterStorm集群,包括安装和配置Zookeeper集群,安装Storm依赖库,下载并解压Storm发布版本,修改storm.yaml配置文件,以及启动ZooKeeper和Storm各个后台进程。重点突出搭建过程中的关键步骤和注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     本文讲述Twitter Storm安装配置,也作为学习笔记。 storm的官方安装说明(e文):https://github.com/nathanmarz/storm/wiki/Setting-up-a-Storm-cluster 。 storm的安装分为单机版和集群版,只是配置稍微有点区别,大致一样。这一章节将详细描述如何搭建一个Storm集群。下面是接下来需要依次完成的安装步骤:

  • 搭建Zookeeper集群;
  • 安装Storm依赖库;
  • 下载并解压Storm发布版本;
  • 修改storm.yaml配置文件;
  • 启动Storm各个后台进程。

1.搭建Zookeeper集群

Storm使用Zookeeper协调集群,由于Zookeeper并不用于消息传递,所以Storm给Zookeeper带来的压力相当低。大多数情况下,单个节点的Zookeeper集群足够胜任,不过为了确保故障恢复或者部署大规模Storm集群,可能需要更大规模节点的Zookeeper集 群(对于Zookeeper集群的话,官方推荐的最小节点数为3个)。在Zookeeper集群的每台机器上完成以下安装部署步骤:

1)下载安装Java JDK,官方下载链接为http://java.sun.com/javase/downloads/index.jsp,JDK版本为JDK 6或以上,详细安装步骤见文件Linux下安装jdk1.6.doc

2)安装zookeeper

wget http://labs.mop.com/apache-mirror/zookeeper/zookeeper-3.3.5/zookeeper-3.3.5.tar.gz
tar -zxvf zookeeper-3.3.5.tar.gz
cp -R zookeeper-3.3.5 /usr/local/
ln -s /usr/local/zookeeper-3.3.5/ /usr/local/zookeeper

vim /etc/profile (设置ZOOKEEPER_HOME和ZOOKEEPER_HOME/bin)
export ZOOKEEPER_HOME="/path/to/zookeeper"
export PATH=$PATH:$ZOOKEEPER_HOME/bin

cp /usr/local/zookeeper/conf/zoo_sample.cfg /usr/local/zookeeper/conf/zoo.cfg (用zoo_sample.cfg制作$ZOOKEEPER_HOME/conf/zoo.cfg)
mkdir /tmp/zookeeper
mkdir /var/log/zookeeper

zookeeper的单机安装已经完成了。

注意事项:

  • 由于Zookeeper是快速失败(fail-fast)的,且遇到任何错误情况,进程均会退出,因此,最好能通过监控程序将Zookeeper管理起来,保证Zookeeper退出后能被自动重启。详情参考这里
  • Zookeeper运行过程中会在dataDir目录下生成很多日志和快照文件,而Zookeeper运行进程并不负责定期清理合并这些文件,导致占用大量磁盘空间,因此,需要通过cron等方式定期清除没用的日志和快照文件。详情参考这里。 具体命令格式如下:java -cp zookeeper.jar:log4j.jar:conf org.apache.zookeeper.server.PurgeTxnLog <dataDir> <snapDir> -n <count>
  • 根据Zookeeper集群的负载情况,合理设置Java堆大小,尽可能避免发生swap,导致Zookeeper性能下降。保守期间,4GB内存的机器可以为Zookeeper分配3GB最大堆空间。

2 .安装Storm依赖库

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

以上依赖库的版本是经过Storm测试的,Storm并不能保证在其他版本的Java或Python库下可运行。

2.1安装ZeroMQ 2.2.0

jzmq的安装貌似是依赖zeromq的,所以应该先装zeromq,再装jzmq。
开始安装:

wget http://download.zeromq.org/zeromq-2.2.0.tar.gz
tar zxf zeromq-2.2.0.tar.gz
cd zeromq-2.2.0
./configure
make
make install

zeromq安装完成。

注意事项:

如果遇到Error:cannot link with -luuid, install uuid-dev,原因为缺少uuid相关package:

# yum install uuid*

# yum install e2fsprogs*

# yum install libuuid*

2.2安装JZMQ

下载后编译安装JZMQ:

yum install git
git clone git://github.com/nathanmarz/jzmq.git
cd jzmq
./autogen.sh
./configure
make
make install


然后,jzmq就装好了。

注意事项:

  • 如果没有安装git工具,请参照文件CentOS 5 上安装git.docx,该文件步骤经过检验,安装成功后可以测试:

  • 如果运行./configure命令出现问题,参考这里
  • 在./autogen.sh这步如果报错:autogen.sh:error:could not find libtool is required to run autogen.sh,这是因为缺少了libtool,可以用#yum install libtool*来解决。
  • 正确设置 JAVA_HOME环境变量
  • 安装Java开发包

2.3安装Java 6

因为刚才为zookeeper已经配置了JDK6,而该单机版zookeeper和Storm安装在同一台Linux机器上,可以共用,所以此处可以省略,不安装。

2.4安装Python2.7.2

wget http://www.python.org/ftp/python/2.7.2/Python-2.7.2.tgz
tar zxvf Python-2.7.2.tgz
cd Python-2.7.2
./configure
make
make install

2.5安装unzip

在CentOS 5中,系统已经自带unzip解压缩工具,不用安装。

注意事项:

1. 如果使用RedHat系列Linux系统,执行以下命令安装unzip:

apt-get install unzip

2. 如果使用Debian系列Linux系统,执行以下命令安装unzip:

yum install unzip

3.安装Storm发布版本

wget http://cloud.github.com/downloads/nathanmarz/storm/storm-0.8.1.zip
unzip storm-0.8.1.zip
mv storm-0.8.1 /usr/local/
ln -s /usr/local/storm-0.8.1/ /usr/local/storm

vim /etc/profile
export STORM_HOME=/usr/local/storm-0.8.1
export PATH=$PATH:$STORM_HOME/bin

4.修改storm.yaml配置文件

文件在/usr/local/storm/conf/storm.yaml内容:

storm.zookeeper.servers:
- 127.0.0.1

storm.zookeeper.port: 2181

nimbus.host: "127.0.0.1"

storm.local.dir: "/tmp/storm"

supervisor.slots.ports:
- 6700
- 6701
- 6702
- 6703

到此为止单机版的Storm就安装完毕了。

说明一下:storm.local.dir表示storm需要用到的本地目录。nimbus.host表示那一台机器是master机器,即 nimbus。storm.zookeeper.servers表示哪几台机器是zookeeper服务器。storm.zookeeper.port表示zookeeper的端口号,这里一定要与zookeeper配置的端口号一致,否则会出现通信错误,切记切记。当然你也可以配 superevisor.slot.port,supervisor.slots.ports表示supervisor节点的槽数,就是最多能跑几个 worker进程(每个sprout或bolt默认只启动一个worker,但是可以通过conf修改成多个)。

注意事项:

1.这个脚本文件写的不咋地,所以在配置时一定注意在每一项的开始时要加空格(最好加两个空格),冒号后也必须要加空格,否则storm不认识这个配置文件。

5.启动ZooKeeper和Storm各个后台进程

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

1. 启动zookeeper:

单机版直接启动,不用修改什么配置,如集群就需要修改zoo.cfg另一篇文章会讲到,命令如下:

# /usr/local/zookeeper/bin/zkServer.sh start

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

# bin/storm nimbus(启动主节点)

#bin/storm supervisor(启动从节点)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值