Storm集群的搭建

来源:互联网 发布:网络诈骗的例子 编辑:程序博客网 时间:2024/05/16 14:33

环境要求:如果以下环境你已搭建好,请直接跳过。

1. java环境,如果还没有安装java环境,请点击!

2.zookeeper环境,对于storm集群来讲,单节点的zookeeper已经足够。但要配置zookeeper的高可靠性,必须配置3台以上的奇数台!zookeeper的配置详情请点击


总体架构图:


现在开始storm集群的搭建:

下载storm集群所需的可能用得到的所有依赖

1.安装zeromq(zeromq是storm集群用到的底层的消息队列,其效率相当高)

依赖安装,注意按顺序安装:
rpm -ivh libuuid-2.17.2-12.9.el6.x86_64.rpm 
rpm -ivh libuuid-devel-2.17.2-12.9.el6.x86_64.rpm
rpm -ivh uuid-1.6.1-10.el6.x86_64.rpm 
rpm -ivh uuid-devel-1.6.1-10.el6.x86_64.rpm 

针对不同系统版本(我用的是centos6.5  64位)可能还会用到其他依赖,在上面的下载地址中,包含了所有。


2.解压zeromq-2.1.7.tar.gz到/cloud目录

tar -zxvf  zeromq-2.1.7.tar.gz -C /cloud


3.进入到zeromq-2.1.7目录,执行如下命令:

./configure 
make
make install

4.安装jzmq(jzmq是zeromq的java banding)
解压jzmq-master.zip到指定目录,.zip格式的用到的是unzip命令,-d指定想要解压到的目录
unzip jzmq-master.zip -d /cloud/
cd /cloud/ jzmq-master/
./autogen.sh 
./configure 
make
make install


5.解压storm-0.8.2.zip

unzip storm-0.8.2.zip -d /cloud


6.修改storm的配置文件

在storm安装目录下的conf目录下(我的是/cloud/storm-0.8.2/conf),修改storm.yaml文件

 storm.zookeeper.servers、 nimbus.host: 前面的注释(#号)去掉,改为如下:

storm.zookeeper.servers:
     - "nimbus"
     - "sv1"
     - "sv2"
 nimbus.host: "nimbus"

其中:

(1)storm.zookeeper.servers是 配置zookeeper的机器的地址,如果你已经在/etc/hosts文件下添加了主机地址和主机名的映射,直接写主机名即可。如果你的zookeeper配置的是单节点,那这里写一个就ok。

(2)nimbus.host: "nimbus"是配置nimbus主机所在位置,其中“nimbus”是我自己配置的主机名。


好了,到这里一台机器上的storm就安装完成了。另外3台supervisor主机的配置,与以上配置步骤相同;

你可以直接通过scp命令把安装目录直接拷贝过去,但是前期的rpm依赖包还是要手动安装的哦。


storm集群的启动

1.启动zookeeper

在zookeeper安装目录下的bin目录下:执行:./zkServer.sh start

2.启动nimbus 

在你配置的nimbus主机下的storm安装目录下的bin目录下:执行:

./storm nimbus >/dev/null 2>&1 &(将标准输出和标准错误信息打印到/dev/null,并让程序以后台进程启动)

3.启动supervisor 

在你配置的每一个supervisor主机下的storm安装目录下的bin目录下:执行:

./storm supervisor >/dev/null 2>&1 &

4.在主节点(nimbus主机)上启动 ui 

./storm ui >/dev/null 2>&1 &  (ui是storm集群的网页监控,启动后可以通过浏览器查看)


浏览器查看:http://192.168.1.110:8080(这里是主节点即nimbus主机的ip,端口号默认是8080)


Storm集群运行中常见问题解决:
1.supervisor启动不起来
那很可能是因为机器突然掉电、或者你使用暴力的方式杀掉来supervisor进程,导致在$STORM_HOME/bin/storm-local 目录中的文件冲突;
这时候把storm-local目录删掉,再从新启动supervisor即可。

2.正确关闭正在运行的作业(在storm中称作Topology,拓扑)的方法

在nimbus节点下,在$STORM_HOME/bin/ 目录下执行 ./storm kill Topology_name(拓扑名,即作业名)  ;当然如果你忘了Topology_name,可以在此目录下执行./storm list 命令来列出当前正在运行的所有Topology;

注:如果你没有通过正确的方式关闭Topology,那么nimbus再次启动时,会重新把Topology分配给supervisor的。再次证明了Storm实时计算、高可靠的强大特性;当你不小心杀掉了supervisor,其上的worker会被nimbus转移到其他supervisor上继续执行。
1 0
原创粉丝点击