Bootstrap

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版默认分成了“”和“”,两个版本目录结构差不多,一定要下载前面那个带bin的,后面这个是源码版。

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 配置的目录下。很多时候可能是因为防火墙的问题。