zookeeper-3.4.10伪集群模式搭建及简单操作

时间:2022-07-22
本文章向大家介绍zookeeper-3.4.10伪集群模式搭建及简单操作,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

文章目录

在学习zookeeper的过程中,常常受制于环境限制,没有足够多的硬件资源以供自己玩耍,通常情况下只有自己的16G内存的笔记本,因此,在这种情况下,我们需要通过搭建伪集群环境来体验zookeeper的集群模式。

1.环境准备

操作系统: fedora25
硬件配置: thinkpad X230  i5  16G   500G
依赖软件: jdk  1.8.0_121 (官方版本,非openjdk)
下载: zookeeper-3.4.10.tar.gz
cd /opt
wget http://www-us.apache.org/dist/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz

安装目录:/opt/zookeeper
mkdir /opt/zookeeper
cd /opt/zookeeper 
tar -zxvf  /opt/zookeeper-3.4.10.tar.gz 
cp -rf /opt/zookeeper/zookeeper-3.4.10   /opt/zookeeper/zoo-node1
cp -rf /opt/zookeeper/zookeeper-3.4.10   /opt/zookeeper/zoo-node2
cp -rf /opt/zookeeper/zookeeper-3.4.10   /opt/zookeeper/zoo-node3
rm -rf  /opt/zookeeper/zookeeper-3.4.10 
这样,zookeeper的三个节点运行目录分别为:
 /opt/zookeeper/zoo-node1
 /opt/zookeeper/zoo-node2
 /opt/zookeeper/zoo-node3

2.配置

2.1 zoo.cfg配置文件

zookeeper的运行,需要在conf目录配置zoo.cfg文件。我们可以参考zoo_sample.cfg进行配置。 节点1配置如下:

#zookeeper时间单元,单位为毫秒
tickTime=2000
#集群中的follower服务器(F)与leader服务器(L)之间 初始连接 时能容忍的最多心跳数(tickTime的数量)。
initLimit=10
# 集群中的follower服务器(F)与leader服务器(L)之间 请求和应答 之间能容忍的最多心跳数(tickTime的数量)。
syncLimit=5
# data数据目录
dataDir=/opt/zookeeper/zoo-node1/data
# 客户端连接端口
clientPort=2181
# 客户端最大连接数
#maxClientCnxns=60
# 需要保留的快照数目
#autopurge.snapRetainCount=3
# 是否开启自动清理事务日志和快照功能 0 不开启,1表示开启
#autopurge.purgeInterval=1
#集群配置 
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配置

#zookeeper时间单元,单位为毫秒
tickTime=2000
#集群中的follower服务器(F)与leader服务器(L)之间 初始连接 时能容忍的最多心跳数(tickTime的数量)。
initLimit=10
# 集群中的follower服务器(F)与leader服务器(L)之间 请求和应答 之间能容忍的最多心跳数(tickTime的数量)。
syncLimit=5
# data数据目录
dataDir=/opt/zookeeper/zoo-node2/data
# 客户端连接端口
clientPort=2182
# 客户端最大连接数
#maxClientCnxns=60
# 需要保留的快照数目
#autopurge.snapRetainCount=3
# 是否开启自动清理事务日志和快照功能 0 不开启,1表示开启
#autopurge.purgeInterval=1
#集群配置 
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890

节点3配置

#zookeeper时间单元,单位为毫秒
tickTime=2000
#集群中的follower服务器(F)与leader服务器(L)之间 初始连接 时能容忍的最多心跳数(tickTime的数量)。
initLimit=10
# 集群中的follower服务器(F)与leader服务器(L)之间 请求和应答 之间能容忍的最多心跳数(tickTime的数量)。
syncLimit=5
# data数据目录
dataDir=/opt/zookeeper/zoo-node3/data
# 客户端连接端口
clientPort=2183
# 客户端最大连接数
#maxClientCnxns=60
# 需要保留的快照数目
#autopurge.snapRetainCount=3
# 是否开启自动清理事务日志和快照功能 0 不开启,1表示开启
#autopurge.purgeInterval=1
#集群配置 
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890

分别将上述配置文件放置在三个节点对应的conf目录下。 另外,需要新建data目录

mkdir /opt/zookeeper/zoo-node1/data
mkdir /opt/zookeeper/zoo-node2/data
mkdir /opt/zookeeper/zoo-node3/data

2.2 myid配置文件

zookeeper还需要在data目录中配置myid文件。myid文件中存放对应节点的序号。

echo '1'  >  /opt/zookeeper/zoo-node1/data/myid
echo '2'  >  /opt/zookeeper/zoo-node2/data/myid
echo '3'  >  /opt/zookeeper/zoo-node3/data/myid

2.3 日志路径配置

修改 bin 目录下的zkEnv.sh 将ZOO_LOG_DIR 修改为:

 ZOO_LOG_DIR="../logs/"

按上述方法分别修改三个节点中的zkEnv.sh文件

3.启动

/opt/zookeeper/zoo-node1/bin/zkServer.sh start
/opt/zookeeper/zoo-node2/bin/zkServer.sh start
/opt/zookeeper/zoo-node2/bin/zkServer.sh start

如此分别启动三个节点即可。 启动效果如下:

[root@localhost bin]# /opt/zookeeper/zoo-node1/bin/zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/zoo-node1/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

查看日志:

4.客户端连接

运行 zkCli.sh 连接到默认的端口

4.1 create

使用create 可以创建一个zookeeper节点。

命令格式
create [-s] [-e] path data acl
create  /zk-book 123

4.2 ls

列出zookeeper指定节点下的所有子节点。

命令格式
ls path [watch]
ls /

4.3 get

get 可以获取zookeeper指定节点的数据内容和属性信息。

get path [watch]
get /zk-book

4.4 set

更新指定节点的数据内容

set path data [vresion]
set /zk-book 456

4.5 delete

delete 删除zookeeper上指定节点内容

delete path [version]
delete /zk-book

不过需要注意的是,删除的节点必须为空,否则无法删除。

create /zk-book 123
create /zk-book/child 12345
delete /zk-book