Ubuntu Server 20.04搭建zookeeper集群
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
1.准备
安装好JDK
zookeeper版本:pache-zookeeper-3.7.0-bin.tar.gz
镜像下载地址:https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz
之前安装kvm准备三台虚拟机:192.168.2.31,192.168.2.32,192.168.33
安装kvm虚拟机:https://xie.infoq.cn/article/af423568b655968a605ed7fac
注意:如果3.5.5以后版本可能会出现如下错误,>3.5.5版默认分成了“
Starting zookeeper ... FAILED TO START
2.安装配置
下载kafka
$ wget -c https://mirrors.bfsu.edu.cn/apache/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz
解压缩
$ tar -zxvf apache-zookeeper-3.7.0-bin.tar.gz
移动到目录
$ sudo mv apache-zookeeper-3.7.0-bin /usr/local/apache-zookeeper-3.7.0
然后进入目录,将 zoo_sample.cfg 文件复制并重命名为 zoo.cfg 文件。
$ cp zoo_sample.cfg zoo.cfg
在用户目录创建数据目录和myid文件。
$ mkdir /home/$USER/zookeeper #创建zookeeper目录
$ mkdir /home/$USER/zookeeper/data #创建zookeeper存储目录data
$ touch /home/$USER/zookeeper/data/myid #创建myid
使用vi或者nano修改myid内容,这里是server.0所以myid的内容是0,如下图所示:

查看myid内容
$ cat /home/$USER/zookeeper/data/myid #server.0的内容显示为0
0
修改配置文件
sudo vi /usr/local/apache-zookeeper-3.7.0/conf/zoo.cfg
# 修改dataDir路径
dataDir=/home/$USER/zookeeper/data/ #$USER为你用户名,刚才创建的
clientPort=2181
# 添加三台server服务器地址
server.0=192.168.2.31:2888:3888
server.1=192.168.2.32:2888:3888
server.2=192.168.2.33:2888:3888
需要修改的第一个是 dataDir ,在指定的位置处创建好目录。
第二个需要新增的是 server.A=B:C:D 配置,其中 A 对应下面我们即将介绍的myid 文件。B是集群的各个IP地址,C:D 是端口配置。
参考官方文档:https://zookeeper.apache.org/doc/r3.7.0/zookeeperStarted.html
3.配置环境变量
为了方便执行语句,这里可以配置一下环境变量。
#设置环境变量
export ZK_HOME=/usr/local/apache-zookeeper-3.7.0
export PATH=$PATH:$ZK_HOME/bin
更新一下环境变量
$ source /etc/profile
4.启动ZK服务
启动命令:
$ zkServer.sh start
停止命令:
$ zkServer.sh stop
重启命令:
$ zkServer.sh restart
查看集群节点状态:
$ zkServer.sh status
JMX enabled by default
Using config:/usr/local/apache-zookeeper-3.7.0/bin/../conf/zoo.cfg
Mode: leader
5.问题
如果没有出现上面的状态,查看一下zookeeper,日志文件所在目录在dataDir 配置的目录下。很多时候可能是因为防火墙的问题。