下载

链接: https://www.apache.org/dyn/closer.cgi/zookeeper/

image.png

安装

解压缩包即可

单节点运行

image.png

参考官网教程:在conf目录新建zoo.cfg,添加如下内容

  1. tickTime=2000
  2. dataDir=/var/lib/zookeeper
  3. clientPort=2181

然后执行命令,后台运行 sudo bin/zkServer.sh start

客户端使用

执行命令 bin/zkCli.sh -server 127.0.0.1:2181 进入客户端

执行命令 help 查看shell自带哪些命令
image.png

创建、查看、更新、删除节点:
image.png

复制模式(仲裁模式)

什么是复制模式,大概意思就是在一台机器上运行多个zk服务。过程还是比较简单的(哈哈~~)只看不动手操作的话,还是有点晕的啊。

下面就跟着我的步伐,一二一走起….

首先:将conf/zoo.cfg复制三份,重命名为zoo1.cfg,zoo2.cfg.zoo3.cfg。

image.png

看仔细了,下面要把三份配置文件贴出来了哦(因为三份文件长得差不多,我就只介绍zoo1.cfg就行了,不同的地方我用红框框框出来了哈)

zoo1.cfg
image.png

zoo2.cfg
image.png

zoo3.cfg
image.png

注意红框框,dataDir表示数据存储路径,三份配置文件都要不一样哦。另外clientPort也要不一样,一样的话就要打架了哈。
注意红圆圈里的1 2 3 。后面再讲啦,大概意思就是表示服务1,2,3.(反正我是这样理解的)

好了,既然要数据存储路径,那我们就来创建吧

  1. mkdir -p data/zoo1/
  2. mkdir -p data/zoo2/
  3. mkdir -p data/zoo3/

创建好了目录后,我们来看看目录情况
image.png

夷,myid是什么东东???别急,少年,注意上图zoo1.cfg 红圆圈的server1 2 3没有。OK,注意到了吧。
看下面的命令

  1. echo 1 > data/zoo1/myid
  2. echo 2 > data/zoo2/myid
  3. echo 3 > data/zoo3/myid

就是把标号输出到对应的数据存储目录下的myid文件里啦。再不理解,我也木办法啦,照着做就好啦。

一切准备就绪。开始启动了。

  1. bin/zkServer.sh start conf/zoo1.cfg
  2. bin/zkServer.sh start conf/zoo2.cfg
  3. bin/zkServer.sh start conf/zoo3.cfg

启动完毕!出错了,我不会修复(哈哈哈)

客户端连接

bin/zkCli.sh -server 127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183

终止服务: bin/zkServer.sh stop conf/zoo1.cfg
bin/zkServer.sh stop conf/zoo2.cfg
bin/zkServer.sh stop conf/zoo3.cfg


分布式安装


集群规划

在node101、node102和node103三个节点上部署Zookeeper。

解压安装

(1)解压Zookeeper安装包到/opt/module/目录下

[twx@node101 software]$ tar -zxvf zookeeper-3.4.10.tar.gz -C /opt/module/

(2)同步/opt/module/zookeeper-3.4.10目录内容到node102、node103

[twx@node101 module]$ xsync zookeeper-3.4.10/

配置服务器编号

(1)在/opt/module/zookeeper-3.4.10/这个目录下创建zkData

[twx@node101 zookeeper-3.4.10]$ mkdir -p zkData

(2)在/opt/module/zookeeper-3.4.10/zkData目录下创建一个myid的文件

[twx@node101 zkData]$ touch myid

添加myid文件,注意一定要在linux里面创建

(3)编辑myid文件

[twx@node101 zkData]$ vi myid

  1. 在文件中添加与server对应的编号:

1

(4)拷贝配置好的zookeeper到其他机器上

[twx@node101 zkData]$ xsync myid

并分别在node102、node103上修改myid文件中内容为2、3

配置zoo.cfg文件

(1)重命名/opt/module/zookeeper-3.4.10/conf这个目录下的zoo_sample.cfg为zoo.cfg

[twx@node101 conf]$ mv zoo_sample.cfg zoo.cfg

(2)打开zoo.cfg文件

[twx@node101 conf]$ vim zoo.cfg

修改数据存储路径配置

dataDir=/opt/module/zookeeper-3.4.10/zkData

增加如下配置

  1. #######################cluster##########################
  2. server.1=node101:2888:3888
  3. server.2=node102:2888:3888
  4. server.3=node103:2888:3888

3)同步zoo.cfg配置文件

[twx@node101 conf]$ xsync zoo.cfg


启动

[twx@node101 zookeeper-3.4.10]$ bin/zkServer.sh start [twx@node102 zookeeper-3.4.10]$ bin/zkServer.sh start [twx@node103 zookeeper-3.4.10]$ bin/zkServer.sh start

启动、停止脚本 zk.sh

  1. #! /bin/bash
  2. case $1 in
  3. "start"){
  4. for i in node101 node102 node103
  5. do
  6. ssh $i "/opt/module/zookeeper-3.4.10/bin/zkServer.sh start"
  7. done
  8. };;
  9. "stop"){
  10. for i in node101 node102 node103
  11. do
  12. ssh $i "/opt/module/zookeeper-3.4.10/bin/zkServer.sh stop"
  13. done
  14. };;
  15. "status"){
  16. for i in node101 node102 node103
  17. do
  18. ssh $i "/opt/module/zookeeper-3.4.10/bin/zkServer.sh status"
  19. done
  20. };;
  21. esac