Zookeeper

一,Zookeeper 是雅虎开发的后来贡献给了Apache,是一套用于分布式管理的框架

在这里插入图片描述

下载

wget https://dlcdn.apache.org/zookeeper/zookeeper-3.8.0/apache-zookeeper-3.8.0-bin.tar.gz

安装zookeeper 前先安装java jdk
wget https://download.oracle.com/java/18/latest/jdk-18_linux-x64_bin.tar.gz

安装

单机模式 ,单机运行,无法运行全部功能
伪分布模式 ,在单机运行,使用多线程模拟多个节点
完全分布式,多节点运行

  1. 关闭防火墙 systemctl stop firewall
  2. 禁止防火墙启动 systemctl disable firewall
  3. 解压: tar -xvf zookeeper-3.8.0-bin.tar.gz
  4. cd $(ZOOKEEPER_HOME)
  5. cp zoo_simple.cfg zoo.cfg ,ZK 启动时会自动找到 zoo.cfg
  6. vim zoo.cfg
  7. 修改 zoo.cfg 中的dataDir 数据存储目录 dataDir=/home/$(ZK_HOME)/tmp,保存,不指定默认 在 /tmp 下
  8. cd $(ZK_HOME)/bin 执行 zkServer.sh start 启动 ZK
  9. sh zkCli.sh 启动客户端

特点

  1. zookeeper 时一个树状结构,类似linux 文件系统 ,根节点是 /
  2. ZK 中的每个节点称为 Znode , 称为 Znode 树
  3. ZK 自带了一个根节点 [zookeeper]
  4. 创建节点时可以携带数据也可以不携带数据
  5. 在 zookeeper 中没有相对路径,所有路径必须从根节点开始 ls /test/tt
  6. Zookeeper 会将每个操作看成一个事务(Create Update Delete ),会生成事务id ,并且时全局递增的

节点信息

在这里插入图片描述

节点类型

在这里插入图片描述

命令

命令解释示例
create创建节点create /test,创建一个 test 节点
ls查看根节点目录ls /
delete删除节点delete /test
rmr递归删除rmr /test
get获取节点数据get /test
set设置节点数据set /test ‘aaa’
get -s获取节点信息get -s /test
create -e创建临时节点create -e /test/temp 临时节点不能有子节点
create -s创建持久顺序节点create -s /test/tttt

完全分布式

  1. 准备3台服务器
  2. 关闭防火墙
  3. 服务器设置ssh免密登录ssh-keygen ; ssh-copy-id servername
  4. 安装java JDK ,设置 环境变量
  5. 安装ZK,修改zoo.cfg 中的 dataDir = $ZK_HOME/tmp; 同时添加
    server.1=ip:2888:3888 server.2=ip:2888:3888 server.3=ip:2888:3888
  6. 在每台服务器的dataDir 目录中创建 myid 文件,输入服务器每台服务器的id 和server.x 对应
  7. 启动所有服务器 sh zkServer.sh
  8. jps 查看进程 QuorumPeerMain 此进程说明启动成功
  9. sh zkServer.sh status 查看server 状态
    执行 zkServer.sh status 时出现错误 Client port found: 2181. Client address: localhost. Error contacting service. It is probably not run
    解决办法: 1. 确保JAVA JDK 已经正确安装; 2.关闭防火墙 systemctl stop firewalld.service 3.禁用防火墙 systemctl disable firewalld.service;

Zookeeper 选举机制

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

ZAB 协议

ZAB(zookeeper atomic broadcast) 原子广播,zookeeper进行原子广播和崩溃恢复的协议
ZAB 是基于 2PC 算法设计实现的,利用 过半性+PAXOS改进
原子广播: 保证每个节点的数据是同步的
在这里插入图片描述

zookeeper 查看日志

在这里插入图片描述

zookeeper 状态

  1. leader 管理者
  2. follower 跟随者,会参与选举和投票
  3. observer 观察者不会参与选举和投票,但是会监控选举结果,根据结果做出动作,大型集群中选举投票效率较低,将 90% 设置为 observer
  4. observer 配置
  • 进入conf 目录,vim zoo.cfg
  • 添加 peerType = observer
  • server.x=ip:2888:3888:observer

zookeeper 集群操作

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值