Zookeeper - 安装

安装文件: apache-zookeeper-3.6.3-bin.tar.gz
官网下载: https://zookeeper.apache.org/releases.html#download

准备JAVA - JDK 环境 - 省略

安装zookeeper :
1.创建文件夹 并把文件上传至该目录下
mkdir /app

2.解压文件夹,并重命名
tar -zxvf apache-zookeeper-3.6.3-bin.tar.gz
mv apache-zookeeper-3.6.3-bin zookeeper

3.cd到zookeeper/conf下   将zoo_sample.cfg复制一份并改名为zoo.cfg
cd zookeeper/conf
cp zoo_sample.cfg zoo.cfg

zookeeper服务器启动默认加载zoo.cfg文件,当然也可以命名为其他文件,但是在运行是需要指定cfg文件名。
如命名为zk1.cfg时,启动zookeeper命令为:./zkServer.sh start zk1.cfg 。
如果是zoo.cfg 启动时命令为:./zkServer.sh start

4.创建data,log文件夹在zookeeper存放数据  对应配置到zoo.cfg
mkdir /app/zookeeper/data
mkdir /app/zookeeper/log

参数说明:
tickTime: zookeeper中使用的基本时间单位, 毫秒值
initLimit: Follower在启动过程中,会从Leader同步所有最新数据,然后确定自己能够对外服务的起始状态。Leader允许Follower在initLimit时间内完成这个工作
syncLimit:在运行过程中,Leader负责与ZK集群中所有机器进行通信,如果L发出心跳包在syncLimit之后,还没有从F那里收到响应,那么就认为这个F已经不在线了。
dataDir: 数据目录. 可以是任意目录.本文制定/usr/lib/zookeeper/data 
dataLogDir: log目录, 同样可以是任意目录. 如果没有设置该参数, 将使用和dataDir相同的设置.
clientPot: 监听client连接的端口号

在某些博客中还会涉及设置环境变量这一步。其实并不需要进行环境的设置就可以部署成功。
单机部署(独立模式)就到此完成了,集群部署就是启动多个服务,对于配置server.节点=节点IP

配置zookeeper集群(一台机器3个zk 服务 伪集群) 单机部署请忽略
以上述安装的zookeeper为标准,配置zk节点间的通信
节点间通信:server.n = ip:port1:port2
n:代表zk的节点信息
ip:zk的服务器地址
port1:用于zk间的通信(数据同步)
port2:用于zk间的投票选举
编辑zoo.cfg文件,配置通信
server.1=172.22.0.7:6675:6676
server.2=172.22.0.8:6677:6678
server.3=172.22.0.9:6679:6680
阿里云部署,还要在zoo.cfg中添加一个属性quorumListenOnAllIPs=true

指定zk属于哪个节点  在data/目录下创建myid文件:指定zk属于哪个节点。
touch myid     
节点1: echo 1  > myid 节点2: echo 2  > myid 节点3 : echo 3  > myid

6.启动服务:
首先的bin文件夹下,再启动zkServer.sh
 cd /app/zookeeper/bin
./zkServer.sh start 或  /app/zookeeper/bin/zkServer.sh start
查看日志启动: ./zkServer.sh start-foreground

7.查看状态
./zkServer.sh status

8.关闭服务
./zkServer.sh stop

9.连接客户端测试
连接客户端,由于集群之后连接客户端的命令不再是 ./zkCli.sh 了
./zkCli.sh -server localhost:2181

集群测试:
在其中一台机器 创建一个节点 , 在其他机器上查看数据是否已经同步,如果节点和数据能够正常同步,那么 zookeeper 集群搭建就完成了

踩坑记录: 阿里云搭zookeeper集群遇到Exception while listening java.net.BindException: Cannot assign requested address问题
阿里云环境 不同安全组配置, 集群不能使用内网IP, 外网的iptables 不在本机器内, 需要 开 Zookeeper 配置, 或者使用案例本身的 Zookeeper
quorumListenOnAllIPs=true这个参数的潜在问题

posted @ 2021-12-01 14:53  栋_RevoL  阅读(26)  评论(0编辑  收藏  举报