1、安装环境介绍
- 先介绍环境:
-
由于zookeeper集群的运行需要Java运行环境,所以需要首先安装 JDK,关于安装步骤,我在前面博客介绍过:CentOS7 安装JDK
-
安装版本:zookeeper-3.4.6 官方所有版本下载地址 我的下载资源 zookeeper-3.4.6
-
3台个人云服务器 A(20) B(37) C(26)
-
开放端口:2181 2888 3888
-
如果开启防火墙建议关闭
查看防火墙状态: systemctl status firewalld.service
绿的running表示防火墙开启
执行关闭命令: systemctl stop firewalld.service
再次执行查看防火墙命令:systemctl status firewalld.service
执行开机禁用防火墙自启命令 : systemctl disable firewalld.service
2、 解压Zookeeper (三台节点都重复执行步骤 2-5)
tar -zxvf zookeeper-3.4.6.tar.gz
3、 修改 zoo_sample.cfg 配置文件
1、进入解压后的 zookeeper-3.4.6 文件夹下的 conf 文件夹
cd zookeeper-3.4.6/
cd conf/
2、复制zoo_sample.cfg 并重命名 为 zoo.cfg
cp zoo_sample.cfg zoo.cfg
3、修改配置文件
- tickTime:Zookeeper使用的基本时间单位(毫秒)。它用于做心跳,并且最小会话超时将是tickTime 的两倍
- dataDir:除非另有说明,否则存储内存数据库快照的位置以及数据库更新的事务日志
- clientPort:侦听客户端连接的端口
server.20=0.0.0.0:2888:3888 server.20=ip:2888:3888 云服务器本机用0.0.0.0 虚拟机用ip
server.37=ip:2888:3888
server.26=ip:2888:3888
server.A = B:C:D
-
A 代表服务器的编号
-
B 代表服务器的ip 地址
-
C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口
-
D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader
pwd
vim zoo.cfg
需要修改添加的配置文件内容:
dataDir=复制Zookeeper目录/data
server.20=0.0.0.0:2888:3888 云服务器本机用0.0.0.0 虚拟机用ip
server.37=ip:2888:3888
server.26=ip:2888:3888
4、创建myid文件
回到 Zookeeper 根目录下 创建刚刚在配置文件中指定的 dataDir 目录 data
进入 data , vim myid
将 刚刚配置的 server.20=ip:2888:3888 server.A = B:C:D
当前服务器标记 20 写到 myid去
进入到Zookeeper根目录
mkdir data
cd data/
vim myid
myid 里面写上刚刚配置这台服务器的标记
20
5、配置环境变量
这步骤的目的是:随时随地都可以执行 Zookeeper 的命令
vim /etc/profile
export ZK_HOME=你的Zookeeper根目录
export PATH=$PATH:$ZK_HOME/bin
:wq
source /etc/profile
# 6、 启动Zookeeper 服务
我们分别对 3台服务器 执行启动命令,执行完毕后,分别查看集群节点的状态:
zkServer.sh start
zkServer.sh status
如图代表集群搭建成功
启动命令:
zkServer.sh start
停止命令:
zkServer.sh stop
重启命令:
zkServer.sh restart
查看集群节点状态:
zkServer.sh status
遇到的坑
- 如果你是使用云服务器请将当前节点ip 设置为 0.0.0.0 ,否则监听器无法连接到端口
Cannot open channel to 2 at election address /10.10.87.241:3888 java.net.ConnectException: Connection refused (Connection refused)
- 当无法启动时,启动不起来时。不妨试着删除掉 /data 目录下的 pid 文件。在试试
Cannot open channel to 37 at election address /ip:3888 java.net.ConnectException: Connection refused (Connection refused)onfig, exiting abnormally