在一台服务器上搭建zookeeper伪集群

1. 环境准备

zookeeper需要java,所以先下载java.如果不是要求特别严格,可以下载openjdk

yum install -y java-1.8.0-openjdk.x86_64

也可以看我之前的文章自己手动安装jdk

2. 下载解压zookeeper

下载

 wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.6.3/apache-zookeeper-3.6.3-bin.tar.gz

解压

tar -xvf apache-zookeeper-3.6.3-bin.tar.gz 

重命名

mv apache-zookeeper-3.6.3-bin zookeeper363

3. 创建文件夹

创建三个文件夹,代表三个服务器

mkdir -p server1 server2 server3

为 3 个节点创建各自的目录

# 数据目录
mkdir -p data/zk1 data/zk2 data/zk3
# 日志目录
mkdir -p logs/zk1 logs/zk2 logs/zk3

如图
在这里插入图片描述
每个节点创建 myid 文件并分别填写1、2、3

cd data/zk1
vim myid
# 按i,进入输入模式,输入文本“1”,按esc退出输入模式,按wq保存并退出 不懂百度一下vim咋用
cd ../../

另外两个以此类推最终如下图
在这里插入图片描述

4. 编辑配置文件

进入配置文件夹

 cd zookeeper363/conf/

复制 zoo_sample.cfg

 cp zoo_sample.cfg zoo.cfg 

编辑zoo.cfg

vim zoo.cfg
# 单元时间(ms),zk中的时间间隔都是使用tickTime的倍数来表示
tickTime=2000
# 节点的初始化时间,Follower(从节点)启动并完成与Leader(主节点)数据同步的时间
initLimit=10
# 心跳最大延迟时间,用于主节点和从节点之间的心跳检测
syncLimit=5

# 数据目录选项
dataDir=/king/zk/data/zk1
# 日志目录选项
dataLogDir=/king/zk/logs/zk1

# 客户端连接节点的端口号
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

5. 将编辑好的zookeeper复制到对应的 server 文件夹下

cp -r zookeeper363/ server1/
cp -r zookeeper363/ server2/
cp -r zookeeper363/ server3/

6. 编辑server2 server3 下的zoo.cfg

server2 如下

[root@VM-16-8-centos zk]# cat server2/zookeeper363/conf/zoo.cfg 
# 单元时间(ms),zk中的时间间隔都是使用tickTime的倍数来表示
tickTime=2000
# 节点的初始化时间,Follower(从节点)启动并完成与Leader(主节点)数据同步的时间
initLimit=10
# 心跳最大延迟时间,用于主节点和从节点之间的心跳检测
syncLimit=5

# 数据目录选项
dataDir=/king/zk/data/zk2
# 日志目录选项
dataLogDir=/king/zk/logs/zk2

# 客户端连接节点的端口号
clientPort=2182

# 集群中的所有节点信息,每个节点都需要知道整个集群是由哪些节点组成的
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890
server2 如下

server2 如下

[root@VM-16-8-centos zk]# cat server3/zookeeper363/conf/zoo.cfg 
# 单元时间(ms),zk中的时间间隔都是使用tickTime的倍数来表示
tickTime=2000
# 节点的初始化时间,Follower(从节点)启动并完成与Leader(主节点)数据同步的时间
initLimit=10
# 心跳最大延迟时间,用于主节点和从节点之间的心跳检测
syncLimit=5

# 数据目录选项
dataDir=/king/zk/data/zk3
# 日志目录选项
dataLogDir=/king/zk/logs/zk3

# 客户端连接节点的端口号
clientPort=2183

# 集群中的所有节点信息,每个节点都需要知道整个集群是由哪些节点组成的
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890

7. 启动zookeeper

server1/zookeeper363/bin/zkServer.sh start
server2/zookeeper363/bin/zkServer.sh start
server3/zookeeper363/bin/zkServer.sh start

在这里插入图片描述

8. 查看服务状态

jsp

zkServer.sh status

server1/zookeeper363/bin/zkServer.sh status
server2/zookeeper363/bin/zkServer.sh status
server3/zookeeper363/bin/zkServer.sh status

在这里插入图片描述

9. 使用

用 zkCli 连接上 ZooKeeper 服务:

server1/zookeeper363/bin/zkCli.sh -server 127.0.0.1:2181

在这里插入图片描述

10. 常用命令

# 服务器启动关闭
./zkServer.sh start	# 启动Zookeeper服务
./zkServer.sh stop	# 关闭Zookeeper服务
./zkServer.sh status	# 查看Zookeeper状态信息

# 客户端连接服务器
./zkCli.sh -server <ip>:<port>	# 指定连接某个Zookeeper服务器

# 客户端操作命令
ls <path>	# 查看指定路径的节点
	ls -w <path>	# 监听指定节点子节点的数量变化(只监听一次)

create <path> [data]	# 创建一个永久节点
	create -s <path> [data]	# 创建一个有序的永久节点
	create -e <path> [data]	# 创建一个临时节点
	
get <path>	# 获取指定路径的data
	get -w <path>	# 监听指定节点data的变化(只监听一次)

delete <path>	# 删除没有子节点的空节点
	deleteall <path>	# 删除一个节点以及其下面的所有子节点

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值