ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件
安装版本
Centos:7.6.1810
jdk:1.8
Zookeeper:3.4.10
准备工作
下载zookeeper-3.4.10.tar.gz
在usr/local路径下建一个zookeeper文件夹,我这是用的是下载好压缩包直接放到服务器上
安装过程
1、切换到zookeeper这个文件夹下,解压zookeeper-3.4.10.tar.gz包
cd /usr/local/zookeeper
tar -zxvf zookeeper-3.4.10.tar.gz
2、切换到已经解压好的文件夹下,创建zookeeper的数据和日志目录
cd /usr/local/zookeeper/zookeeper-3.4.10
mkdir data
mkdir logs
3、切换到conf目录下,将zoo_sample.cfg文件的名字改成zoo.cfg
cd /usr/local/zookeeper/zookeeper-3.4.10/conf
mv zoo_sample.cfg zoo.cfg
4、还是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!保存并退出
5、还是data目录下,生成集群id
cd /usr/local/zookeeper/zookeeper-3.4.10/data
touch "1" > myid
vim myid
#输入1,然后esc,:wq!保存并退出
三台服务器需要进行如上同样的操作,不同的是在vim myid后,一台里边输入是1,一台里边是2,一台里边是3.
6、修改本机hosts
vim /etc/hosts
添加ip地址和别名
XXX.XXX.XXX.XXX zk1
XXX.XXX.XXX.XXX zk2
XXX.XXX.XXX.XXX zk3
然后esc,:wq!保存并退出
三台服务器需要进行如上操作
7、查看这3台服务器是否能ping通
ping zk1
出现下边的样子代表可ping通
8、切换到bin目录下,启动zookeeper
cd /usr/local/zookeeper/zookeeper-3.4.10/bin
./zkServer.sh start
当看到started,代表zookeeper启动成功
9、在bin目录下,查看集群状态,一个是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端口
这俩种方式,使用一种即可,然后重启虚拟机,再查看集群状态就可以了。
有时设置了防火墙,不重启虚拟机,还是会有上边的错误,所有要记得重启虚拟机。