环境准备

      本次搭建的是ZooKeeper集群,首先需要准备三台虚拟机,对应配置/参数如下:

Hostname 系统 IP
zookeeper-01 Centos7 192.168.233.137
zookeeper-02 Centos7 192.168.233.138
zookeeper-03 Centos7 192.168.233.139

相关软件下载链接:https://pan.baidu.com/s/1DcLJh7js47m36j6BoGhOyQ 提取码:aox5

JDK的安装与配置

      由于zookeeper集群的运行需要Java运行环境,所以需要首先安装 JDK。

cd /opt && mkdir zookeeper
tar -zxvf jdk-8u181-linux-x64.tar.gz 
vim /etc/profile
# 追加如下内容
export JAVA_HOME=/opt/zookeeper/jdk1.8.0_181
export JRE_HOME=$JAVA_HOME/jre
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=./://$JAVA_HOME/lib:$JRE_HOME/lib

source /etc/profile
# 查看JDK版本信息,验证是否安装成功
java -version

ZooKeeper的安装与配置

配置环境变量

      首先解压压缩文件,将ZK目录配置在环境变量中。

tar -zxvf apache-zookeeper-3.5.7-bin.tar.gz
vim /etc/profile
# 追加如下内容
export ZOOKEEPER_HOME=/opt/zookeeper/apache-zookeeper-3.5.7-bin
export PATH=$PATH:$ZOOKEEPER_HOME/bin

source /etc/profile

修改配置文件

      进入$ZOOKEEPER_HOME/conf目录,修改ZooKeeper的配置文件,将zoo_sample.cfg文件修改为zoo.cfg。zoo.cfg文件的内容参考如下:

# ZooKeeper服务器心跳时间,单位为ms
tickTime=2000

# 投票选举新leader的初始化时间
initLimit=10

# leader与follower心跳检测最大容忍时间,响应超过syncLimit*tickTime,leader认为
# follower挂掉,从服务器列表中删除follower
syncLimit=5

# 数据目录
dataDir=/tmp/zookeeper/data

# 日志目录
dataLogDir=/tmp/zookeeper/log

# ZooKeeper对外服务端口
clientPore=2181

      系统中没有/tmp/zookeeper/data/tmp/zookeeper/log这两个目录,所以需要首先创建。在/tmp/zookeeper/data下创建一个myid文件,并写入一个数值,比如0。myid文件里存放的是服务器的编号。
      若只配置上面的内容则是单机环境,为了搭建集群,需要添加如下配置:

server.0=192.168.233.137:2888:3888
server.1=192.168.233.138:2888:3888
server.2=192.168.233.139:2888:3888

      为了便于讲解上面的配置,此处抽象出一个公式,即server.A=B:C:D。其中 A 是一个数字,代表服务器的编号,即myid文件中的值。集群中每台服务器的编号都必须唯一,所以要保证每台服务器中的myid文件中的值不同。B 代表服务器的IP地址。C 表示服务器以集群中的 leader 服务器交换信息的端口。D 表示选举时服务器相互通信的端口。

启动ZooKeeper之前最好先关闭防火墙哦~

      执行zkServer.sh start启动ZooKeeper。

[root@zookeeper-01 conf]# zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/apache-zookeeper-3.5.7-bin/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

      执行zkServer.sh status查看ZooKeeper集群各个节点的状态,可以发现zookeeper-03为leader,其他两个为follower。

[root@zookeeper-01 conf]# zkServer.sh status
# zookeeper-01状态
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/apache-zookeeper-3.5.7-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: follower

# zookeeper-02状态
[root@zookeeper-02 conf]# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/apache-zookeeper-3.5.7-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: follower

# zookeeper-03状态
[root@zookeeper-03 conf]# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/apache-zookeeper-3.5.7-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: leader
Last modification:May 4th, 2021 at 10:48 pm
如果觉得我的文章对你有用,请随意赞赏