勿以浮沙筑高台
这里准备了三台Linux主机,108(MASTER),107,109(FOLLWER)
- 下载Zookeeper到Linux(三台执行)
下载地址:https://archive.apache.org/dist/zookeeper/
wget https://archive.apache.org/dist/zookeeper/stable/apache-zookeeper-3.6.3-bin.tar.gz
- 解压zookeeper
tar xf apache-zookeeper-3.6.3-bin.tar.gz
- 创建配置文件并配置
进入zookeeper-bin文件
cd apache-zookeeper-3.6.3-bin/
cd conf
//创建Zoo.cfg文件
vim zoo.cfg
将下面内容复制进配置文件
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper-cluster/data/
dataLogDir=/usr/local/zookeeper-cluster/log/ clientPort=2181
//server.1 这个1是服务器的标识,可以是任意有效数字,标识这是第几个服务器节点,这个标识要写到 dataDir目录下面myid文件里
//指名集群间通讯端口和选举端口 ,在集群之间需要防火墙对其端口放行
server.11=master:2287:3387
server.22=worker1:2287:3387
server.33=worker2:2287:3387
- 配置映射接口(需要三台机子都配备)
cat /etc/hosts
本机如下,
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.31.108 master //master
192.168.31.109 work1 //follower
192.168.31.107 work2 //follower
- 配置好,将文件发送给其他follower
cd ..
回到根目录发送文件
//这里的zookeeper363是我将文件更改了个名字
scp -r ./zookeeper363/ root@work1:/root/
//这里的zookeeper363是我将文件更改了个名字
scp -r ./zookeeper363/ root@work2:/root/
-
检查其他2台机子
109,
107
发送成功 -
创建数据目录
创建什么数据目录
就是配置文件中的dataDir=/usr/local/zookeeper-cluster/data/
目录并将引导数据写入进去
# 三台主机均执行该命令
mkdir -vp /usr/local/zookeeper-cluster/data/
三台主机依次执行一下命令,11对应的是服务.id(server.11)
# master主机
echo "11" > /usr/local/zookeeper-cluster/data/myid
# work1主机
echo "22" > /usr/local/zookeeper-cluster/data/myid
# work2主机
echo "33" > /usr/local/zookeeper-cluster/data/myid
- 查看服务器ID
cd /usr/local/zookeeper-cluster/data/
ls
cat myid
9. 启动Zookeeper
/root/zookeeper363/bin/zkServer.sh start
10. 查看
/root/zookeeper363/bin/zkServer.sh status
是通过谁的ip大谁就是leader来选举的不是按我们配置的master进行选举