Storm—Storm集群搭建
3.1 环境准备
3.1.1 集群规划
hadoop102 hadoop103 hadoop104
zk zk zk
storm storm storm
3.1.2 jar包下载
(1)官方网址:http://storm.apache.org/
(2)安装集群步骤:
http://storm.apache.org/releases/1.1.0/Setting-up-a-Storm-cluster.html
3.1.3 虚拟机准备
1)准备3台虚拟机
2)配置ip地址
3)配置主机名称
4)3台主机分别关闭防火墙
[root@hadoop102 atguigu]# chkconfig iptables off
[root@hadoop103 atguigu]# chkconfig iptables off
[root@hadoop104 atguigu]# chkconfig iptables off
3.1.4 安装jdk
3.1.5 安装Zookeeper
0)集群规划
在hadoop102、hadoop103和hadoop104三个节点上部署Zookeeper。
1)解压安装
(1)解压zookeeper安装包到/opt/module/目录下
[atguigu@hadoop102 software]$ tar -zxvf zookeeper-3.4.10.tar.gz -C /opt/module/
(2)在/opt/module/zookeeper-3.4.10/这个目录下创建zkData
mkdir -p zkData
(3)重命名/opt/module/zookeeper-3.4.10/conf这个目录下的zoo_sample.cfg为zoo.cfg
mv zoo_sample.cfg zoo.cfg
2)配置zoo.cfg文件
(1)具体配置
dataDir=/opt/module/zookeeper-3.4.10/zkData
增加如下配置
#######################cluster##########################
server.2=hadoop102:2888:3888
server.3=hadoop103:2888:3888
server.4=hadoop104:2888:3888
(2)配置参数解读
Server.A=B:C:D。
A是一个数字,表示这个是第几号服务器;
B是这个服务器的ip地址;
C是这个服务器与集群中的Leader服务器交换信息的端口;
D是万一集群中的Leader服务器挂了,需要一个端口来重新进行选举,选出一个新的Leader,而这个端口就是用来执行选举时服务器相互通信的端口。
集群模式下配置一个文件myid,这个文件在dataDir目录下,这个文件里面有一个数据就是A的值,Zookeeper启动时读取此文件,拿到里面的数据与zoo.cfg里面的配置信息比较从而判断到底是哪个server。
3)集群操作
(1)在/opt/module/zookeeper-3.4.10/zkData目录下创建一个myid的文件
touch myid
添加myid文件,注意一定要在linux里面创建,在notepad++里面很可能乱码
(2)编辑myid文件
vi myid
在文件中添加与server对应的编号:如2
(3)拷贝配置好的zookeeper到其他机器上
scp -r zookeeper-3.4.10/ root@hadoop103.atguigu.com:/opt/app/
scp -r zookeeper-3.4.10/ root@hadoop104.atguigu.com:/opt/app/
并分别修改myid文件中内容为3、4
(4)分别启动zookeeper
[root@hadoop102 zookeeper-3.4.10]# bin/zkServer.sh start
[root@hadoop103 zookeeper-3.4.10]# bin/zkServer.sh start
[root@hadoop104 zookeeper-3.4.10]# bin/zkServer.sh start
(5)查看状态
[root@hadoop102 zookeeper-3.4.10]# bin/zkServer.sh status
JMX enabled by default
Using config: /opt/module/zookeeper-3.4.10/bin/../conf/zoo.cfg
Mode: follower
[root@hadoop103 zookeeper-3.4.10]# bin/zkServer.sh status
JMX enabled by default
Using config: /opt/module/zookeeper-3.4.10/bin/../conf/zoo.cfg
Mode: leader
[root@hadoop104 zookeeper-3.4.5]# bin/zkServer.sh status
JMX enabled by default
Using config: /opt/module/zookeeper-3.4.10/bin/../conf/zoo.cfg
Mode: follower
3.2 Storm集群部署
3.2.1 配置集群
1)拷贝jar包到hadoop102的/opt/software目录下
2)解压jar包到/opt/module目录下
[atguigu@hadoop102 software]$ tar -zxvf apache-storm-1.1.0.tar.gz -C /opt/module/
3)修改解压后的apache-storm-1.1.0.tar.gz文件名称为storm
[atguigu@hadoop102 module]$ mv apache-storm-1.1.0/ storm
4)在/opt/module/storm/目录下创建data文件夹
[atguigu@hadoop102 storm]$ mkdir data
5)修改配置文件
[atguigu@hadoop102 conf]$ pwd
/opt/module/storm/conf
[atguigu@hadoop102 conf]$ vi storm.yaml
# 设置Zookeeper的主机名称 storm.zookeeper.servers: - "hadoop102" - "hadoop103" - "hadoop104"
# 设置主节点的主机名称 nimbus.seeds: ["hadoop102"]
# 设置Storm的数据存储路径 storm.local.dir: "/opt/module/storm/data"
# 设置Worker的端口号 supervisor.slots.ports: - 6700 - 6701 - 6702 - 6703 |
6)配置环境变量
[root@hadoop102 storm]# vi /etc/profile
#STORM_HOME export STORM_HOME=/opt/module/storm export PATH=$PATH:$STORM_HOME/bin |
[root@hadoop102 storm]# source /etc/profile
7)分发配置好的Storm安装包
[atguigu@hadoop102 storm]$ xsync storm/
8)启动集群
(1)后台启动nimbus
[atguigu@hadoop102 storm]$ bin/storm nimbus &
[atguigu@hadoop103 storm]$ bin/storm nimbus &
[atguigu@hadoop104 storm]$ bin/storm nimbus &
(2)后台启动supervisor
[atguigu@hadoop102 storm]$ bin/storm supervisor &
[atguigu@hadoop102 storm]$ bin/storm supervisor &
[atguigu@hadoop102 storm]$ bin/storm supervisor &
(3)启动Storm ui
[atguigu@hadoop102 storm]$ bin/storm ui
9)通过浏览器查看集群状态
http://hadoop102:8080/index.html
3.2.2 Storm日志信息查看
1)查看nimbus的日志信息
在nimbus的服务器上
cd /opt/module/storm/logs
tail -100f /opt/module/storm/logs/nimbus.log
2)查看ui运行日志信息
在ui的服务器上,一般和nimbus一个服务器
cd /opt/module/storm/logs
tail -100f /opt/module/storm/logs/ui.log
3)查看supervisor运行日志信息
在supervisor服务上
cd /opt/module/storm/logs
tail -100f /opt/module/storm/logs/supervisor.log
4)查看supervisor上worker运行日志信息
在supervisor服务上
cd /opt/module/storm/logs
tail -100f /opt/module/storm/logs/worker-6702.log
5)logviewer,可以在web页面点击相应的端口号即可查看日志
分别在supervisor节点上执行:
[atguigu@hadoop102 storm]$ bin/storm logviewer &
[atguigu@hadoop103 storm]$ bin/storm logviewer &
[atguigu@hadoop104 storm]$ bin/storm logviewer &
3.2.3 Storm命令行操作
1)nimbus:启动nimbus守护进程
storm nimbus
2)supervisor:启动supervisor守护进程
storm supervisor
3)ui:启动UI守护进程。
storm ui
4)list:列出正在运行的拓扑及其状态
storm list
5)logviewer:Logviewer提供一个web接口查看Storm日志文件。
storm logviewer
6)jar:
storm jar 【jar路径】 【拓扑包名.拓扑类名】 【拓扑名称】
7)kill:杀死名为Topology-name的拓扑
storm kill topology-name [-w wait-time-secs]
-w:等待多久后杀死拓扑
8)active:激活指定的拓扑spout。
storm activate topology-name
9)deactivate:禁用指定的拓扑Spout。
storm deactivate topology-name
10)help:打印一条帮助消息或者可用命令的列表。
storm help
storm help <command>