环境准备

Zookeeper: 3.8.1

安装Zookeeper

Zookeeper官网下载好安装包

1
tar -zxvf apache-zookeeper-3.8.1-bin.tar.gz -C /mysoft/

配置环境变量

vi /etc/profile
1
2
3
#ZooKeeper environment variables
export ZOOKEEPER_HOME=/mysoft/apache-zookeeper-3.8.1
export PATH=$PATH:$ZOOKEEPER_HOME/bin
使环境变量生效
1
source /etc/profile

Zookeeper全分布式

1
2
cd $ZOOKEEPER_HOME
cd conf/

配置zoo.cfg

1
cp zoo_sample.cfg zoo.cfg

修改dataDir

vi zoo.cfg
1
dataDir=/mysoft/apache-zookeeper-3.8.1/zkData

添加如下内容

vi zoo.cfg
1
2
3
4
#cluser cinfiguration
server.1=hsq01:2888:3888
server.2=hsq02:2888:3888
server.3=hsq03:2888:3888

端口号后面千万不要留有空格!!!

  • 其中,“1” “2” “3”是myid,要求是1~255的整数;hsq01代表对应主机地址
  • 2888Leader端口,负责和Follower进行通信
  • 3888Follower端口,负责推选Leader

新建dataDir目录

1
mkdir /mysoft/apache-zookeeper-3.8.1/zkData

在该目录下新建文件myid,并填写内容

vi /mysoft/apache-zookeeper-3.8.1/zkData/myid
1
1

将Zookeeper目录及Zookeeper环境分发到其他主机

1
2
for i in {2..3}; do scp -r /mysoft/apache-zookeeper-3.8.1/ hsq0$i:/mysoft/;done
for i in {2..3}; do scp /etc/profile hsq0$i:/etc/profile;done

修改myid文件

  • 02虚拟机改为2
  • 03虚拟机改为3

使环境变量生效

每台虚拟机分别执行source /etc/profile

启动Zookeeper服务

每台虚拟机均要执行
1
zkServer.sh start

查看各虚拟机的Zookeeper服务启动状态

1
zkServer.sh status

01
02
03

启动和关闭Zookeeper集群

启动和关闭Zookeeper集群需要在每台虚拟机上启动和关闭Zookeeper服务器。如果使用的虚拟机很多,效率会非常低。
为了方便的使用Zookeeper集群,可以编写启动脚本xzk.sh

(1)在虚拟机hsq01的目录/usr/local/bin/下新建xzk.sh脚本文件

vi /usr/local/bin/xzk.sh
1
2
3
4
5
6
7
8
9
#! /bin/bash
cmd=$1
if [ $# -gt 1 ] ; then echo param must be 1 ; exit ; fi
for (( i=1 ; i<=3 ; i++ )) ; do
tput setaf 5
echo ============ hsq0$i $@ ============
tput setaf 9
ssh hsq0$i "source /etc/profile ; zkServer.sh $cmd"
done

(2)为xzk.sh脚本添加执行权限

1
chmod u+x xzk.sh

(3)通过xzk.sh脚本的start和stop命令,就可以在虚拟机01上同时启动和关闭所有虚拟机的Zookeeper服务器

1
2
3
xzk.sh start
xzk.sh stop
xzk.sh status

方便启动