Zookeeper使用
背景
提供通用的分布式锁服务,用以协调分布式应用。
安装版本
3.4.10
前提
安装了jdk
安装过程
下载zookeeper-3.4.10.tar.gz
在usr/local路径下建一个zookeeper文件夹,我这是用的是下载好压缩包直接放到服务器上
- 切换到zookeeper这个文件夹下,解压zookeeper-3.4.10.tar.gz包
- cd /usr/local/zookeeper
- tar -zxvf zookeeper-3.4.10.tar.gz
- 切换到已经解压好的文件夹下,创建zookeeper的数据和日志目录
- cd /usr/local/zookeeper/zookeeper-3.4.10
- mkdir data
- mkdir logs
- 切换到conf目录下,将zoo_sample.cfg文件的名字改成zoo.cfg
- cd /usr/local/zookeeper/zookeeper-3.4.10/conf
- mv zoo_sample.cfg zoo.cfg
- 还是conf目录下,修改zoo.cfg的配置信息
vim zoo.cfg - vim不能用时,安装vim,输入命令:yum -y install vim*
配置数据和日志目录
dataDir=/usr/local/zookeeper/zookeeper-3.4.10/data
dataLogDir=/usr/local/zookeeper/zookeeper-3.4.10/logs
- 最后配置3台服务器,
zk1,zk2,zk3
是别名 - #2888 选举端口
- #3888 心跳端口
- server.1=zk1:2888:3888
- server.2=zk2:2888:3888
- server.3=zk3:2888:3888
最后esc,:wq!
保存并退出
- 还是data目录下,生成集群id
- cd /usr/local/zookeeper/zookeeper-3.4.10/data
- touch “1” > myid
- vim myid
输入1
,然后esc,:wq!
保存并退出
注:三台服务器需要进行如上同样的操作,不同的是在vim myid后,一台里边输入是1,一台里边是2,一台里边是3.
- 修改本机hosts
- vim /etc/hosts
- 添加ip地址和别名
XXX.XXX.XXX.XXX zk1
XXX.XXX.XXX.XXX zk2
XXX.XXX.XXX.XXX zk3
然后esc
,:wq!
保存并退出
三台服务器需要进行如上操作
-
查看这3台服务器是否能ping通
ping zk1 -
出现下边的样子代表可ping通
-
切换到bin目录下,启动zookeeper
cd /usr/local/zookeeper/zookeeper-3.4.10/bin
./zkServer.sh start
当看到started,代表zookeeper启动成功
- 在bin目录下,查看集群状态,一个是leader,两个是follower。leader为主,follower辅
./zkServer.sh status
看到这样的结果,代表搭建zookeeper
集群成功。
常见问题如下:
一般经常出现zookeeper能启动成功,但是却查看集群状态时,还是not running,如下图:
出现这样的情况,需要对防火墙进行处理。
一种简单的方式是直接关闭防火墙
systemctl stop firewalld.service
#关闭防火墙
一种是开端口,zookeeper的默认端口是2181
firewall-cmd --zone=public --add-port=2181/tcp --permanent
#开放2181端口
这两种方式,使用一种即可,然后重启虚拟机,再查看集群状态就可以了。
有时设置了防火墙,不重启虚拟机,还是会有上边的错误,所有要记得重启虚拟机。