下载地址:https://zookeeper.apache.org/releases.html
至少需要准备三台节点(这里为h136、h138、h140),ZooKeeper 需要 JDK,关于 JDK 的安装这里不做记录
ZooKeeper 集群为主(Leader)从(Follower)模式
安装
# 解压安装 tar -zxf /opt/zookeeper-3.4.14.tar.gz -C /opt/ # 创建配置文件 cp /opt/zookeeper-3.4.14/conf/zoo_sample.cfg /opt/zookeeper-3.4.14/conf/zoo.cfg # 编辑配置(修改下数据存放路径) vim /opt/zookeeper-3.4.14/conf/zoo.cfg tickTime=2000 initLimit=10 syncLimit=5 dataDir=/opt/zookeeper-3.4.14/zkData clientPort=2181 #maxClientCnxns=60 #autopurge.snapRetainCount=3 #autopurge.purgeInterval=1
配置
本地模式到这里就可以直接启动了,集群模式还需要配置编号与集群信息
# 在数据目录下创建 myid,类容为编号 # 先按照上面的路径创建数据目录 mkdir -p /opt/zookeeper-3.4.14/zkData # 创建编号文件 vim /opt/zookeeper-3.4.14/zkData/myid # 内容随意,保证每个节点不同即可 136 # 配置节点信息 vim /opt/zookeeper-3.4.14/conf/zoo.cfg # 添加以下配置,这里为三个节点 server.136=h136:2888:3888 server.138=h138:2888:3888 server.140=h140:2888:3888
# server.A=B:C:D # A 几号服务器,集群模式下配置一个文件 myid,这个文件在 dataDir 目录下,这个文件的内容就是 A 的值,Zookeeper 启动时读取此文件,拿到里面的数据与 zoo.cfg 里面的配置信息比较从而判断到底是哪个 server # B 服务器的 ip 地址 # C 是这个服务器与集群中的 Leader 服务器交换信息的端口 # D 是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口
同步到其他节点,修改 myid 文件
# 这里使用 rsync 工具,scp 也可以 rsync -av /opt/zookeeper-3.4.14 h138:/opt/ rsync -av /opt/zookeeper-3.4.14 h140:/opt/ # 修改其他节点上的 myid 文件 vim /opt/zookeeper-3.4.14/zkData/myid
启动
# 启动 /opt/zookeeper-3.4.14/bin/zkServer.sh start # 停止 /opt/zookeeper-3.4.14/bin/zkServer.sh stop # 查看状态 /opt/zookeeper-3.4.14/bin/zkServer.sh status
启动一台节点,查看状态发现并没有在工作
ZooKeeper 集群需要有一半以上的机器在运行时才可以工作,这里为三台节点,那么就需要至少启动两台节点才能工作
启动两台集群后再查看状态
https://zookeeper.apache.org/doc/r3.4.14/zookeeperAdmin.html