本文主要介绍Storm分布式集群环境的搭建,单机模式(又称本地集群、伪分布式)作为集群模式的一个特例,也会在后面有所介绍。如果在安装搭建的过程中遇到任何问题,可直接回复作者。
Storm集群搭建主要包括以下步骤:
1、搭建一个Zookeeper集群
2、在nimbus、supervisor节点安装依赖包
3、在nimbus、supervisor节点下载并解压缩Storm包
4、修改nimbus、supervisor节点的配置文件(storm.yaml)
5、使用storm脚本启动守护进程(包括nimbus、supervisor、ui)
一些准备
在自己的win2008服务器(IP:202.202.5.223)上安装如下三台虚拟机(普通PC机上也行):
①cluster01:
用户名 / 密码:nimbus / nimbus
ip:192.168.170.128
②cluster02:
用户名 / 密码:zookeeper / zookeeper
ip:192.168.170.129
③cluster03:
用户名 / 密码:supervisor / supervisor
ip:192.168.170.130
此三台虚拟机分别用作Storm集群中的nimbus节点、Zookeeper集群、supervisor节点,因此后面说的在nimbus节点上的操作实际上就是在cluster01这台虚拟机上进行操作,其他类推。
1、搭建一个Zookeeper集群
在cluster02这台虚拟机上搭建zookeeper集群,如何快速搭建zookeeper集群,请参考:http://nileader.blog.51cto.com/1381108/795230,此处不再赘述。
2、在nimbus、supervisor节点安装依赖包
JDK必须安装,本文不再赘述。(java -version检查是否安装JDK)
此外,Storm支持多种语言的开发,需要安装相应的环境。(如果需要运行storm-starter中的例子,则需要安装Python)
3、下载并解压Storm到nimbus、supervisor节点
下载地址:http://storm.incubator.apache.org/downloads.html
注:解压完之后,为了后面的使用方便,可以将storm的bin目录添加到PATH环境变量中。
4、修改nimbus、supervisor节点的配置文件(storm.yaml)
Storm的配置文件位于storm主目录下的conf/storm.yaml,有四处强制需要指定,分别是:
1) storm.zookeeper.servers:指定zookeeper集群中的主机列表,本例中zookeeper集群只有一台主机,配置如下:
storm.zookeeper.servers:
- “192.168.170.129″
2) storm.local.dir: nimbus和supervisor进程需要一个本地磁盘上的目录去存储一些jar包、配置文件,需要注意此目录的权限。
nimbus节点上的配置:
storm.local.dir: “/home/nimbus/storm”
supervisor节点上的配置:
storm.local.dir: “/home/supervisor/storm”
3) nimbus.host:指定nimbus节点对应的主机,配置如下:
nimbus.host: “192.168.170.128″
4) supervisor.slots.ports:对于每个supervisor节点,需要指定一些端口,来运行相应数目的JVM进程。下面的配置开发了四个端口,即在supervisor节点上运行了四个JVM进程(4个worker、此处涉及到Storm中的并行化机制)。
supervisor.slots.ports:
- 6700
- 6701
- 6702
- 6703
注:nimbus节点和supervisor节点上的storm.yaml均需要配置。
5、使用storm脚本启动守护进程(包括nimbus、supervisor、ui)
1)nimbus:在nimbus节点上运行storm nimbus命令
2)supervisor:在supervisor节点上运行 storm supervisor命令
3)ui:在nimbus节点上运行storm ui命令,并访问http://192.168.170.128:8080,出现如下界面则表明集群搭建成功:
所谓伪分布式,其实并不是真正的分布式,它只是在一台机器上模拟了一个真实的分布式的环境。同理,单机版集群环境也只是用一台机器模拟了一个集群,即若干台计算机组成的环境。
单机版集群搭建的步骤与Storm集群环境的搭建过程大致相同,不过需要注意的是:
1)由于单机版集群只有一台主机,并不涉及与其他机器之间的通信,因此,在出现ip地址的地方用localhost或者127.0.0.1代替即可。
2)由于nimbus、supervisor都在同一台机器上,因此storm.yaml文件只需配置一次即可。
在启动nimbus、supervisor守护进程时如果出现问题,不妨把linux的防火墙暂时关闭一下,笔者在部署Storm集群时就遇到过这个问题。
在使用Storm时可能出现的一些其他问题可以参考:http://storm.incubator.apache.org/documentation/Troubleshooting.html
联系客服