1. 机器规划
通过VirtualBox或者Vmware可以比较轻松的撘一套storm的测试换,我们先搭建一台master机器,之后通过VirtualBox的机器复制功能很容易产生slave机器。下面使用操作为Centos 7。
Zookeeper, Nimbus 及Supervisor列的Yes表示需要在对应的机器上启动,No表示不启动。
Host Name | IP Address | Zookeeper | Nimbus | Supervisor |
storm-master | 10.200.9.110 | Yes | Yes | No |
storm-slave1 | 10.200.9.111 | Yes | No | Yes |
storm-slave2 | 10.200.9.112 | Yes | No | Yes |
2. Java环境搭建
2.1 下载JDK
可以选择去Oracle的官方网站上下载Linux版的JDK:
https://www.oracle.com/technetwork/java/javase/downloads/index.html
我们这里使用JDK SE 10.0.2
2.2 上传并解压JDK
把下载的JDK上传到storm-master的/usr/local目录
执行如下命令进行解压
tar -zxvf jdk-10.0.2_linux-x64_bin.tar.gz
2.3 配置环境变量
在命令行输入vim /etc/profile打开profile文件,在文件末尾添加如下代码:
执行如下命令使修改的profile生效
source /etc/profile
3. Zookeeper环境搭建
3.1 下载Zookeeper
在Apache官网上下载Zookeeper,下载链接:
http://www.apache.org/dyn/closer.cgi/zookeeper/
我们这里使用的版本是zookeeper-3.4.12
3.2 上传并解压Zookeeper
上传Zookeeper到10.200.9.110的/usr/local/路径下,之后输入如下命令解压
tar -zxvf zookeeper-3.4.12.tar.gz
3.3 Zookeeper集群搭建
到Zookeeper下的conf目录下复制生成zoo.cfg
cp zoo_sample.cfg zoo.cfg
然后配置打开zoo.cfg,配置如下
同时在Zookeeper目录下新建data和datalog两个目录用来存放myid文件和日志文件
mkdir data
mkdir datalog
进入到Zookeeper下的data目录,新建文件myid
vim myid
输入1之后保存
3.4 配置环境变量
为了操作方便,同样可以把Zookeeper配置到环境变量,基于之前的JDK,/etc/profile的配置如下:
执行如下命令使修改的profile生效
source /etc/profile
4. Storm环境搭建
4.1 下载Storm
Apache官方下载Storm,下载地址:http://storm.apache.org/downloads.html
这里使用的apache-storm-1.2.2
4.2 上传解压Storm
上传storm到10.200.9.110的/usr/local目录下,执行如下命令解压
tar -zxvf apache-storm-1.2.2.tar.gz
4.3 修改配置文件storm.yaml
修改storm.yaml,主要配置如下:
storm.zookeeper.servers 是指Zookeeper所运行的机器,理论上,Zookeeper是独立于其他机器存在的,但是部署的时候,会把Zookeeper与nimbus及supervisor的机器上。
supervisor.slots.ports是运行在supervisor机器上的worker,每个端口对应一个worker,一个worker可以有多个任务。启动worker的数量要基于内存及CPU的承受能力。
4.4 配置环境变量
加入storm到环境变量,结果如下
执行如下命令使修改的profile生效
source /etc/profile
5. 复制master机器生产多台Slave机器并配置
5.1 复制生成slave机器
我使用的是VirtualBox,右击选择“复制”,在出现的“复制虚拟电脑”修改名字,并且勾选“重新初始化所有网卡的MAC地址 (R)”
点击“下一步”,之后选择“完全复制”
你可以创建一个编组来管理这个集群
5.2 配置Slave
登录Slave机器,到Zookeeper下面的data目录下,对于storm-slave-1机器修改myid文件里的值为2,修改storm-slave-2机器修改myid文件里的值为3
6. 启动并查看状态
6.1 启动Zookeeper
分别启动master及slave上的Zookeeper,方法如下:
登录到机器之后,到Zookeeper的bin目录下,执行命令:
./zkServer.sh start
之后可以查看是否启动成功,执行命令:
jps
执行结果如下:
6.2 在master上启动storm ui及nimbus
先启动storm ui 再启动nimbus,否则可能出现nimbus退出的情况
启动storm ui
nohup storm ui >/dev/null 2>&1 &
启动nimbus
nohup storm nimbus >/dev/null 2>&1 &
执行结果如下:
6.3 在slave上启动supervisor
启动supervisor
nohup storm supervisor >/dev/null 2>&1 &
6.4 在浏览器里查看storm的结果
在浏览器里输入http://10.200.9.110:8088/index.html
可以看到具体Storm UI列出来的信息
7 注意事项
7.1 启动Storm之前要先启动Zookeeper,否则nimbus及supervisor会过一段自动退出
7.2 如果是多台机器已经开放好了,则只需要拷贝master主机下的/etc/profile,java sdk, zookeeper及storm即可。