文章目录
- 一、 预备工作
- 1. 下载
- 2. 解压
- 3. 创建目录
- 4. myid 文件
- 5. 验证
- 6. 效果图
- 二、配置管理
- 2.1. zoo1.cfg
- 2.2. zoo2.cfg
- 2.3. zoo3.cfg
- 2.4. 防火墙
- 2.5. 启动zk
- 2.6. 运行状态
一、 预备工作
1. 下载
cd /app
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.12/zookeeper-3.4.12.tar.gz
2. 解压
tar -zxvf zookeeper-3.4.12.tar.gz
3. 创建目录
日志目录和数据目录
cd /app/zookeeper-3.4.12
mkdir logs/zk01 logs/zk02 logs/zk03 -p
mkdir data/zk01 data/zk02 data/zk03 -p
4. myid 文件
每个节点创建 myid 文件:
vim /app/zookeeper-3.4.12/data/zk01/myid
按i,进入输入模式,输入文本“1”,摁esc退出输入模式,摁:wq保存并退出
vim /app/zookeeper-3.4.12/data/zk02/myid
按i,进入输入模式,输入文本“2”,摁esc退出输入模式,摁:wq保存并退出
vim /app/zookeeper-3.4.12/data/zk03/myid
按i,进入输入模式,输入文本“3”,摁esc退出输入模式,摁:wq保存并退出
每个节点需要有一个记录节点 id 的文本文件,名为myid,特点如下:
myid 文件的唯一作用是记录(伪)节点的编号。
myid 文件内容为一个数字,表示节点的编号。且内容只能是一个数字,不能有其他的内容。
myid 文件的存放位置,默认处于 /data 目录下。
id 的范围是 1 ~ 255,集群最多的节点个数为 255 个。
5. 验证
cat /app/zookeeper-3.4.12/data/zk01/myid
cat /app/zookeeper-3.4.12/data/zk02/myid
cat /app/zookeeper-3.4.12/data/zk03/myid
6. 效果图
二、配置管理
2.1. zoo1.cfg
根据模板 zoo_sample.cfg 新建配置文件 zoo1.cfg:
cd /app/zookeeper-3.4.12/conf
cp zoo_sample.cfg zoo1.cfg
配置文件 zoo1.cfg 内容如下:
vim zoo1.cfg
直接复制
# 单元时间(ms),zk中的时间间隔都是使用tickTime的倍数来表示
tickTime=2000
# 节点的初始化时间,Follower(从节点)启动并完成与Leader(主节点)数据同步的时间
initLimit=10
# 心跳最大延迟时间,用于主节点和从节点之间的心跳检测
syncLimit=5
# 数据目录选项
dataDir=/app/zookeeper-3.4.12/data/zk01
# 日志目录选项
dataLogDir=/app/zookeeper-3.4.12/logs/zk01
# 客户端连接节点的端口号
clientPort=2181
# 集群中的所有节点信息,每个节点都需要知道整个集群是由哪些节点组成的
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890
2.2. zoo2.cfg
配置文件 zoo2.cfg 内容如下:
cp zoo1.cfg zoo2.cfg
vim zoo2.cfg
其他配置保持一样
# 数据目录选项
dataDir=/app/zookeeper-3.4.12/data/zk02
# 日志目录选项
dataLogDir=/app/zookeeper-3.4.12/logs/zk02
# 客户端连接节点的端口号
clientPort=2182
2.3. zoo3.cfg
配置文件 zoo3.cfg 内容如下:
cp zoo1.cfg zoo3.cfg
vim zoo3.cfg
其他配置保持一样
# 数据目录选项
dataDir=/app/zookeeper-3.4.12/data/zk03
# 日志目录选项
dataLogDir=/app/zookeeper-3.4.12/logs/zk03
# 客户端连接节点的端口号
clientPort=2183
dataDir 和 dataLogDir 的最终目录分别为之前创建的 /zk01、/zk02、/zk03。如果没有设置 dataLogDir 选项,则日志文件默认存放在 dataDir。
客户端连接 zk 节点的端口号默认是 2181,一般所有节点保持一致不需改变,但由于此处是伪集群,所以需要把客户端的连接端口号设为不同的值,zk01 节点是 2181,zk02 节点是 2182,zk03 节点是 2183。
节点信息需要配置集群中所有节点的编号、IP 地址和端口号。格式为:server.id=host:port:port,前一个端口用于节点之间的通信,后一个端口用于选举主节点,id 值需要与对应节点的 myid 文件中的 id 值保持一致。
2.4. 防火墙
firewall-cmd --zone=public --add-port=2181/tcp --permanent
firewall-cmd --zone=public --add-port=2182/tcp --permanent
firewall-cmd --zone=public --add-port=2183/tcp --permanent
firewall-cmd --zone=public --add-port=2888/tcp --permanent
firewall-cmd --zone=public --add-port=2889/tcp --permanent
firewall-cmd --zone=public --add-port=2890/tcp --permanent
firewall-cmd --zone=public --add-port=3888/tcp --permanent
firewall-cmd --zone=public --add-port=3889/tcp --permanent
firewall-cmd --zone=public --add-port=3890/tcp --permanent
firewall-cmd --reload
2.5. 启动zk
cd /app/zookeeper-3.4.12/bin
./zkServer.sh start /app/zookeeper-3.4.12/conf/zoo1.cfg
./zkServer.sh start /app/zookeeper-3.4.12/conf/zoo2.cfg
./zkServer.sh start /app/zookeeper-3.4.12/conf/zoo3.cfg
2.6. 运行状态
查看节点运行状态:
cd /app/zookeeper-3.4.12/bin
./zkServer.sh status /app/zookeeper-3.4.12/conf/zoo1.cfg
./zkServer.sh status /app/zookeeper-3.4.12/conf/zoo2.cfg
./zkServer.sh status /app/zookeeper-3.4.12/conf/zoo3.cfg