一、安装并启动zookeeper集群
搭建zookeeper集群,无需配置ssh免密登录
使用zookeeper集群,需要保证至少两个节点存活
准备工作:
准备三台服务器(两台也行):
192.168.158.144
192.168.158.145
192.168.158.146
1. 上传下载好的zookeeper,并解压
tar -zxvf zookeeper-3.4.12.tar.gz -C /usr/local/
2. 创建 data和log目录用于存放数据
mkdir -p /usr/local/zdatadir
mkdir -p /usr/local/zlogdir
3. 拷贝 zookeeper配置文件 zoo_sample.cfg
cp conf/zoo_sample.cfg conf/zoo.cfg
4. 修改配置文件 zoo.cfg
vim conf/zoo.cfg
加入如下内容:
dataDir=/usr/local/zdatadir
dataLogDir=/usr/local/zlogdir
# zookeeper集群
server.1=192.168.158.144:2888:3888
server.2=192.168.158.145:2888:3888
server.3=192.168.158.146:2888:3888
其中,dataDir 为数据目录;dataLogDir 为事务日志目录
如图所示:
5. 在 /usr/local/zdatadir/ 下创建myid文件,并写入对应得数字
注意:myid文件内容中得数字要对应,
在192.168.158.144服务器上的myid 数字为1,
在192.168.158.145服务器上的myid 数字为2,
在192.168.158.146服务器上的myid 数字为3。
这些数字可以任意,但要和zoo.cfg中的 server.数字 中的数字一致。
6. 开启zookeeper端口
----- 如果,防火墙关闭了,则可省略此步骤
[root@sjk1 bin]# firewall-cmd --add-port=2181/tcp --zone=public --permanent
success
[root@sjk1 bin]# firewall-cmd --add-port=2888/tcp --zone=public --permanent
success
[root@sjk1 bin]# firewall-cmd --add-port=3888/tcp --zone=public --permanent
success
7. 重启防火墙使改动生效
[root@sjk1 bin]# firewall-cmd --reload
success
8. 启动zookeeper集群
进入 zookeeper 中的bin目录
./zkServer.sh start
查看集群状态
./zkServer.sh status 刚启动可能会有错误,集群中其他节点一并起来后就正常了
./zkServer.sh stop 停止
./zkServer.sh restart 重启
9. 安装成功的结果如下 1个leader,2个follower。(如果是两台机器,则为1个leader,1个follower)
[root@sjk1 bin]# ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.4.12/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@sjk1 bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.4.12/bin/../conf/zoo.cfg
Mode: follower
[root@sjk2 bin]# ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.4.12/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@sjk2 bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.4.12/bin/../conf/zoo.cfg
Mode: follower
[root@sjk3 bin]# ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.4.12/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@sjk3 bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.4.12/bin/../conf/zoo.cfg
Mode: leader
注意:
zookeeper日志文件为:zookeeper.out
默认位置:zookeeper-3.4.12/bin 下
查看zookeeper日志方法:
[root@sjk1 bin]# tail -f zookeeper.out
二、验证 HA的故障转移是否好用
使用jps命令查看zookeeper进程
使用 kill -9 11470 命令杀死leader进程,然后查看每个节点的 zookeeper 状态,如果有一个为leader则验证为好用。
[root@sjk1 bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.4.12/bin/../conf/zoo.cfg
Mode: follower
[root@sjk2 bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.4.12/bin/../conf/zoo.cfg
Mode: leader
三、使用客户端进行连接命令
bin/zkCli.sh -server 192.168.158.144:2181,192.168.158.145:2181,192.168.158.146:2181