Storm和Zookeeper集群搭建及在java项目中的使用
实验环境
- Cent OS 6.9;
- apache-storm-1.1.0;
- 三台服务器虚拟机:192.168.1.129、192.168.1.214、192.168.1.241;
准备工作
1、修改服务器hostname和hosts文件使得可以直接通过hostname访问
使用hostname name
修改hostname,例如:
hostname xuliugen129
(或者直接修改/etc/hostname
文件,输入要设置的hostname)
将三台服务器分别修改为:xuliugen129、xuliugen214、xuliugen241。
2、然后,修改/etc/hosts
使之在内网环境下可以ping
通:
每台机子都设置为上边的hostname,只需要添加上边的三行即可。
3、关闭3台服务器的防火墙:
service firewalld stop
关于Cent OS防火墙的使用可以参考:CentOS 7中firewall防火墙详解和配置以及切换为iptables防火墙
Zookeeper安装与配置
在上一篇中介绍了Zookeeper集群的安装方式,这里不再介绍,请查看:Kafka 单机和分布式环境搭建与案例使用
Storm安装与配置
1、选择合适的版本进行下载Storm
下载地址:http://storm.apache.org/downloads.html
这里选择的是apache-storm-1.1.0.tar.gz ,点击进去选择合适的镜像地址进行下载,我这里的下载地址为:http://mirrors.tuna.tsinghua.edu.cn/apache/storm/apache-storm-1.1.0/apache-storm-1.1.0.tar.gz
使用wget进行下载:
>wget http://mirrors.tuna.tsinghua.edu.cn/apache/storm
/apache-storm-1.1.0/apache-storm-1.1.0.tar.gz
分别下载到3台服务器上,然后解压到自己合适的位置,我这里都是:/home/xuliugen/server
2、配置Storm
配置文件在:/home/xuliugen/server/apache-storm-1.1.0/conf
目录下的storm.yaml
默认只需要修改如下部分:
3台服务器的Storm进行上述相同的配置即可。
Storm启动与应用
1、Storm命令
启动命令在:/home/xuliugen/server/apache-storm-1.1.0/bin
文件夹下,
以上列出了所有可以执行的命令模式。
2、启动nimbus
nimbus主机为:xuliugen129
另外开启一个控制界面,使用jps查看是否正常启动:
nimbus表示正常启动。
3、启动Storm UI
Storm UI这可以在启动nimbus的机器上运行,这里是:xuliugen129,启动如下:
启动之后,jps如下:
Storm UI 进程为core
,访问xuliugen129:8080(这里我的PC级访问的话,就不再是上述设置的hostname,应该是对应的内网IP,默认端口为8080)
3、启动另外两台supervisor
主机分别为:xuliugen214、xuliugen24
>./storm supervisor
查看Storm UI如下:
4、最后查看任一台Zookeeper服务器,查看节点情况:
项目代码使用
CSDN代码地址:http://download.csdn.net/download/u010870518/9949050
百度云盘地址: 链接:http://pan.baidu.com/s/1qYoJ6I4 密码:zsni
1、项目结构
核心jar为:storm-core-1.1.0.jar
2、执行原理:
一个Topology是Spouts和Bolts组成的图, 通过Stream Groupings将图中的Spouts和Bolts连接起来,如下图:
3、Spout代码
**4、UpperBolt代码
**5、AppendBolt代码
**6、TopologyMain代码
7、提交到Storm集群运行:
(1)将项目导出jar,步骤如下:
(2)如果有警告的话,直接忽略即可。
(2)将导出的jar上传到服务器上,nimbus主机即可,我这里上传到:/home/xuliugen/temp
目录下,
(4)在2台supervisor
主机上创建项目中需要的目录:
/home/xuliugen/server/stormdata/
(5)提交到Storm集群的命令为:
>./storm jar /home/xuliugen/temp/stormdemo.jar com.xuliugen.demo.topology.TopologyMain
(1)/home/xuliugen/temp/stormdemo.jar为打包的jar在服务器上的位置;
(2)com.xuliugen.demo.topology.TopologyMain位主函数全路径;
(6)最后查看Storm UI可以看到:
(7)运行效果