前言
在搭建Zookeeper之前,请确保有3台以上可以ping 通并装有Linux 系统的机器。ZooKeeper服务器是用Java创建的,它在JVM上运行。你需要使用JDK 6或更高版本。现在,按照以下步骤在你的机器上搭建ZooKeeper集群环境。
准备工作
小编使用的环境是: CentOS 7+JDK1.8
192.168.16.6 master
192.168.16.4 slave1
192.168.16.5 slave2
PS:搭建Zookeeper集群之前最好配置一下SSH免密登录,可参考下面的博客。
https://blog.csdn.net/lichenglong33/article/details/81627042
验证Java环境
[root@master home]# java -version
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)
如果出现如图所示信息,证明你已经安装过JDK,否则请安装配置Jave JDK环境。
安装配置JDK可参考:
https://blog.csdn.net/lichenglong33/article/details/99636768
Zookeeper 安装
第一步:创建 zookeeper文件夹
[root@master /]# mkdir zookeeper
第二步:将下载好的zookeeper-3.4.5.tar.gz 安装包上传到zookeeper文件夹下并执行解压命令。
[root@master /]#tar -xzvf zookeeper-3.4.5.tar.gz
第三步:修改配置文件
[root@master conf]# cd /zookeeper/zookeeper-3.4.5/conf/
[root@master conf]#mv zoo_sample.cfg zoo.cfg
[root@master conf]# vim zoo.cfg
输入“i”进入编辑模式,在文件结尾增加如信息:
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
如下所示:
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/home/zookeeper/zookeeper-3.4.14/tmp/
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
第四步:创建tmp文件夹以及创建myid文件
执行命令
[root@master /]# cd zookeeper/zookeeper-3.4.5/
[root@master zookeeper-3.4.5]# mkdir tmp
进入到新创建的文件夹tmp目录下创建文本命令如下:
[root@master tmp]# touch myid
向文本中添加内容“1”
[root@master tmp]# echo 1 > myid
第五步:验证文件内容“1”是否写入
[root@master tmp]# cat myid
第六部:将配置好的文件夹复制到slave1和slave2两台机器上面。
执行命令如下:
[root@master tmp]# scp -r /home/zookeeper/ root@slave1:/home/
[root@master tmp]# scp -r /home/zookeeper/ root@slave2:/home/
第七步:将slave1和slave2机器上tmp文件夹下的myid文件内容修改为“2”和“3”
[root@slave1 tmp]# touch 2 > myid
[root@slave2 tmp]# touch 3 > myid
第八步:分别启动master、slave1和slave2 三台机器上的zookeeper
[root@master /]# ./zookeeper/zookeeper-3.4.5/bin/zkServer.sh start
[root@slave1 /]# ./zookeeper/zookeeper-3.4.5/bin/zkServer.sh start
[root@slave2 /]# ./zookeeper/zookeeper-3.4.5/bin/zkServer.sh start
至此启动完成。
输入 jsp 命令如下所示,则表明启动成功。
[root@slave2 zookeeper-3.4.14]# jps
2331 QuorumPeerMain
11965 Jps
第九步:验证zookeeper集群环境是否搭建成功
[root@master /]# ./zookeeper/zookeeper-3.4.5/bin/zkServer.sh status
[root@slave1 /]# ./zookeeper/zookeeper-3.4.5/bin/zkServer.sh status
[root@slave2 /]# ./zookeeper/zookeeper-3.4.5/bin/zkServer.sh status
如果这三台机器中有一个显示leader两个显示follower则表明zookeeper集群环境搭建成功。如下所示:
[root@master zookeeper-3.4.14]# ./bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/zookeeper/zookeeper-3.4.14/bin/../conf/zoo.cfg
Mode: follower
[root@slave1 zookeeper-3.4.14]# ./bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/zookeeper/zookeeper-3.4.14/bin/../conf/zoo.cfg
Mode: leader
[root@slave2 zookeeper-3.4.14]# ./bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/zookeeper/zookeeper-3.4.14/bin/../conf/zoo.cfg
Mode: follower