ZooKeeper 系列:ZooKeeper 集群环境搭建

由 node-01、node-02 和 node-03 三个节点组成 ZooKeeper 集群环境,搭建步骤如下:

步骤一:上传 zookeeper-3.4.6.tar.gz 安装包到 node-01 并解压
bash 复制代码
[root@node-01 ~]# ll
总用量 17288
drwxr-xr-x. 6 root root       86 3月  26 17:32 apps
-rw-r--r--. 1 root root 17699306 3月  30 16:19 zookeeper-3.4.6.tar.gz #上传的zookeeper压缩包
[root@node-01 ~]# tar -zxvf zookeeper-3.4.6.tar.gz -C apps/
[root@node-01 ~]# rm -rf zookeeper-3.4.6.tar.gz
步骤二:修改 conf/zoo.cfg 配置文件
bash 复制代码
[root@node-01 ~]# cd apps/zookeeper-3.4.6/conf/
[root@node-01 conf]# ll
总用量 12
-rw-rw-r--. 1 1000 1000  535 2月  20 2014 configuration.xsl
-rw-rw-r--. 1 1000 1000 2161 2月  20 2014 log4j.properties
-rw-rw-r--. 1 1000 1000  922 2月  20 2014 zoo_sample.cfg
# 拷贝 zoo_sample.cfg 文件并改名为 zoo.cfg
[root@hdp-01 conf]# cp zoo_sample.cfg zoo.cfg
[root@hdp-01 conf]# vi zoo.cfg 
#修改第 12 行文件存储路径
dataDir=/root/apps/zookeeper-3.4.6/data

#行尾添加ZooKeeper集群节点
server.1=node-01:2888:3888
server.2=node-02:2888:3888
server.3=node-03:2888:3888
步骤三:到 node-01 上新建 zookeeper 数据存储目录 data,并在 data 目录中创建一个文件 myid,内容为 1

myid 文件存放 Zookeeper 集群节点的唯一标识

bash 复制代码
[root@node-01 conf]# cd /root/apps/zookeeper-3.4.6
[root@node-01 zookeeper-3.4.6]# mkdir data
[root@node-01 zookeeper-3.4.6]# cd data/
[root@node-01 data]# echo "1" > myid
步骤四:将 node-01 的 zookeeper 安装包拷贝给 node-02 、node-03
bash 复制代码
[root@node-01 data]# cd /root/apps/
[root@node-01 apps]# scp -r zookeeper-3.4.6/ node-02:$PWD
[root@node-01 apps]# scp -r zookeeper-3.4.6/ node-03:$PWD
步骤五:到 node-02 上,修改 zookeeper 数据存储目录 data 下的 myid 文件,将其内容改为 2
bash 复制代码
[root@node-02 ~]# cd /root/apps/zookeeper-3.4.6/data
[root@node-02 data]# echo "2" > myid
步骤六:到 node-03 上,修改 zookeeper 数据存储目录 data 下的 myid 文件,将其内容改为 3
bash 复制代码
[root@node-03 ~]# cd /root/apps/zookeeper-3.4.6/data
[root@node-03 data]# echo "3" > myid
步骤七:启动 zookeeper 集群(node-01、node-02、node-03)
bash 复制代码
### node-01
[root@node-01 ~]# cd /root/apps/zookeeper-3.4.6/
[root@node-01 zookeeper-3.4.6]# bin/zkServer.sh start
JMX enabled by default
Using config: /root/apps/zookeeper-3.4.6/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

#查看zookeeper运行状态
[root@node-01 zookeeper-3.4.6]# bin/zkServer.sh status
JMX enabled by default
Using config: /root/apps/zookeeper-3.4.6/bin/../conf/zoo.cfg
Error contacting service. It is probably not running. #只有一票无法当选 Leader

### node-02
[root@node-02 ~]# cd /root/apps/zookeeper-3.4.6/
[root@node-02 zookeeper-3.4.6]# bin/zkServer.sh start
JMX enabled by default
Using config: /root/apps/zookeeper-3.4.6/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

#查看zookeeper运行状态
[root@node-02 zookeeper-3.4.6]# bin/zkServer.sh status
JMX enabled by default
Using config: /root/apps/zookeeper-3.4.6/bin/../conf/zoo.cfg
Mode: leader # leader 领导者(相当于 master)

### node-03
[root@node-03 ~]# cd /root/apps/zookeeper-3.4.6/
[root@node-03 zookeeper-3.4.6]# bin/zkServer.sh start
JMX enabled by default
Using config: /root/apps/zookeeper-3.4.6/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED  

#查看zookeeper运行状态
[root@node-03 zookeeper-3.4.6]# bin/zkServer.sh status
JMX enabled by default
Using config: /root/apps/zookeeper-3.4.6/bin/../conf/zoo.cfg
Mode: follower # follower 跟随者(相当于 slave)

#再次查看 node-01 zookeeper运行状态
[root@node-01 zookeeper-3.4.6]# bin/zkServer.sh status
JMX enabled by default
Using config: /root/apps/zookeeper-3.4.6/bin/../conf/zoo.cfg
Mode: follower # 现在变为 follower 状态
步骤八:分别在 node-01、node-02 和 node-03 查看 ZooKeeper 进程
bash 复制代码
[root@node-01 ~]# jps
1825 QuorumPeerMain #zookeeper 进程
1915 Jps

[root@node-02 ~]# jps
1825 QuorumPeerMain #zookeeper 进程
1915 Jps

[root@node-03 ~]# jps
1825 QuorumPeerMain #zookeeper 进程
1915 Jps

以上说明 ZooKeeper 集群中三个 ZooKeeper 服务器进程都已正常启动

步骤九:在 node -01 创建自动批量启动 zookeeper 集群脚本 zkCluster.sh
bash 复制代码
[root@node-01 zookeeper-3.4.6]# cd /root/apps/zookeeper-3.4.6/bin
[root@node-01 bin]# vim zkCluster.sh
#!/bin/bash
for host in node-01 node-02 node-03
do
echo "${host}:${1}ing....."
ssh $host "source /etc/profile;/root/apps/zookeeper-3.4.6/bin/zkServer.sh $1"
done

sleep 2

for host in node-01 node-02 node-03
do
ssh $host "source /etc/profile; /root/apps/zookeeper-3.4.6/bin/zkServer.sh status"
done

#添加脚本执行权限
[root@node-01 bin]# chmod +x zkCluster.sh
步骤十:在 node-01 配置 ZooKeeper 环境变量
bash 复制代码
[root@node-01 bin]# vim /etc/profile
#行尾添加如下配置
export ZOOKEEPER_HOME=/root/apps/zookeeper-3.4.6
export PATH=$PATH:$ZOOKEEPER_HOME/bin
#执行脚本让环境变量生效
[root@node-01 bin]# source /etc/profile
步骤十一:将 node-01 的 ZooKeeper 集群脚本 zkCluster.sh 和 环境配置文件 profile 拷贝到 node-02、node-03
bash 复制代码
[root@node-01 bin]# cd /root/apps/zookeeper-3.4.6/bin
[root@node-01 bin]# scp zkCluster.sh node-02:$PWD
[root@node-01 bin]# scp zkCluster.sh node-03:$PWD
[root@node-01 bin]# scp /etc/profile node-02:$PWD
[root@node-01 bin]# scp /etc/profile node-03:$PWD

#添加脚本执行权限
[root@node-02 bin]# cd /root/apps/zookeeper-3.4.6/bin
[root@node-02 bin]# chmod +x zkCluster.sh
#执行脚本让环境变量生效
[root@node-02 bin]# source /etc/profile

#添加脚本执行权限
[root@node-03 bin]# cd /root/apps/zookeeper-3.4.6/bin
[root@node-03 bin]# chmod +x zkCluster.sh
#执行脚本让环境变量生效
[root@node-03 bin]# source /etc/profile
步骤十二:启动客户端
bash 复制代码
[root@node-01 ~]# zkCli.sh
[zk: localhost:2181(CONNECTED) 0]
相关推荐
o丁二黄o20 小时前
上下文工程实战:用Gemini镜像站构建高效办公信息处理管线
zookeeper·oracle·hbase
二宝哥3 天前
大数据之安装zookeeper
大数据·分布式·zookeeper
颯沓如流星7 天前
ZKube:优雅易用的 ZooKeeper 可视化管理工具
分布式·zookeeper·云原生
霑潇雨11 天前
原生 Zookeeper 实现分布式锁案例
java·分布式·zookeeper·云原生·maven
薪火铺子12 天前
分布式锁深度实战:从 Redis 到 Zookeeper 深度解析
redis·分布式·zookeeper
hyunbar13 天前
ZooKeeper 未授权访问漏洞:你做的 ACL 加固可能只是“假动作”
分布式·zookeeper·云原生
hyunbar77715 天前
ZooKeeper 未授权访问漏洞:你做的 ACL 加固可能只是“假动作”
zookeeper
开开心心_Every15 天前
安卓免费证件照制作软件,无广告弹窗
linux·运维·服务器·安全·elasticsearch·zookeeper·pdf
深蓝轨迹15 天前
Kafka入门教程--帮你理清所有概念和细节
分布式·zookeeper·kafka
czlczl2002092516 天前
Zookeeper
分布式·zookeeper·云原生