Storm集群安装
一、准备工作
1.配置host解析
10.130.77.43 storm01
10.130.77.47 storm02
10.130.77.48 storm03
2.创建storm用户
adduser storm
3.为storm用户创建密码
passwd storm
4.切换到storm用户
su - storm
5.配置SSH免密,生成公钥私钥并进入到./ssh目录查看
ssh-keygen -t rsa
cd .ssh
6.将公钥分别传输到另外两台集群服务器
ssh-copy-id -i ~/.ssh/id_rsa.pub storm@10.130.77.47
ssh-copy-id -i ~/.ssh/id_rsa.pub storm@10.130.77.48
7.测试ssh免密是否成功
ssh storm@10.130.77.47
二、上传jdk zookeeper storm压缩包到目录下
1.解压JDK压缩包
tar -zxvf jdk-8u144-linux-x64.tar.gz
2.修改环境变量
vim ~/.bash_profile
增加下列配置
export JAVA_HOME=/home/storm/jdk1.8.0_144
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
3.加载环境变量
source ~/.bash_profile
三、搭建集群
1.搭建zookeeper集群
①解压zookeeper压缩包
tar -zxf zookeeper-3.4.6.tar.gz
②进入config目录
将 zoo_sample.cfg 文件复制并重命名为 zoo.cfg 文件。
cp zoo_sample.cfg zoo.cfg
③修改zoo.cfg配置文件
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/storm/zookeeper-3.4.6/data
clientPort=2181
server.0=storm01:2888:3888
server.1=storm02:2888:3888
server.2=storm03:2888:3888
①、tickTime:基本事件单元,这个时间是作为Zookeeper服务器之间或客户端与服务器之间维持心跳的时间间隔,每隔tickTime时间就会发送一个心跳;最小 的session过期时间为2倍tickTime
②、dataDir:存储内存中数据库快照的位置,除非另有说明,否则指向数据库更新的事务日志。注意:应该谨慎的选择日志存放的位置,使用专用的日志存储设备能够大大提高系统的性能,如果将日志存储在比较繁忙的存储设备上,那么将会很大程度上影像系统性能。(在指定的位置处创建好目录)
③、client:监听客户端连接的端口。
④、initLimit:允许follower连接并同步到Leader的初始化连接时间,以tickTime为单位。当初始化连接时间超过该值,则表示连接失败。
⑤、syncLimit:表示Leader与Follower之间发送消息时,请求和应答时间长度。如果follower在设置时间内不能与leader通信,那么此follower将会被丢弃。
⑥、server.A=B:C:D
A:其中 A 是一个数字,表示这个是服务器的编号;
B:是这个服务器的 ip 地址;
C:Leader选举的端口;
D:Zookeeper服务器之间的通信端口。
④创建 myid 文件
dataDir 指定的目录下,创建 myid 文件
“dataDir=/opt/apache-zookeeper-3.5.8-bin/data” data目录下创建myid输入zookeeper集群编号(如:0、1、2) 用于识别集群个体及进行选举
⑤启动zookeeper服务
进入到zookeeper的 bin 目录下
启动命令:
./zkServer.sh start
./zkServer.sh start-foreground
这样启动可以知道错误原因了
停止命令:
./zkServer.sh stop
重启命令:
./zkServer.sh restart
查看集群节点状态:
./zkServer.sh status
2.搭建storm集群
①解压storm压缩包
tar -zxf apache-storm-2.2.1.tar.gz
②配置Storm的storm.yaml配置文件
storm.zookeeper.servers:
- "storm01"
- "storm02"
- "storm03"
nimbus.seeds: ["storm01"]
#配置数据存储路径
storm.local.dir: "/home/storm/apache-storm-2.2.1/data"
#配置supervisor: 开启几个端口插槽,就开启几个对应的worker进程
supervisor.slots.ports:
- 6700
- 6701
- 6702
- 6703
##配置节点健康检测
storm.health.check.dir: "healthchecks"
storm.health.check.timeout.ms: 5000
##配置Storm UI
ui.port: 8080
Nimbus可以配置多台,实现HA,就配置一台
需要对外开放的端口:
6627: Nimbus 默认端口
8080: Storm UI Web端口 (已更改为8088)
8000: LogView端口
③运行Storm
在主节点,此处是storm01,启动nimbus,ui
cd /home/storm/apache-storm-2.1.1/bin
nohup storm nimbus &
nohup storm ui &
在strom02、storm03 启动supervisor、logviewer
nohup storm supervisor&
nohup storm logviewer&
④打开storm ui,查看启动结果
地址:http://10.130.77.43:8080/index.html
⑤扩展,nimbus,ui高可用
配置更改
#nimbus.host: "storm01" 注掉,添加下面一条配置
nimbus.seeds: ["storm01", "storm02"]
在storm01,storm02,启动nimbus,ui
nohup storm nimbus &
nohup storm ui &
那么nimbus与ui都有两个节点。
评论区