Zookeeper详解(从安装—入门—使用)

本文详细介绍了Zookeeper的概念、安装步骤、内存模型以及客户端的使用,包括配置管理、分布式锁、集群管理等功能。通过Java客户端展示了创建、读取、修改和监听节点的操作。Zookeeper作为一个协调服务,适用于配置管理、分布式锁和集群管理等场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

🍋1.zookeeper概念

Zookeeper是 Apache Hadoop项目下的一个子项目,是一个树形目录服务。

Zookeeper翻译过来就是动物园管理员,他是用来管Hadoop(大象)、Hive(蜜蜂)、

Pig(小猪)的管理员,简称zk

Zookeeper是一个分布式的、开源的应用程序的协调服务。

zookeeper提供的主要功能包括:

  • 配置管理

在多个应用程序(或服务器)中,假如存在一些相同的配置信息,在对该配置信息进行修改时,我们需要一个一个进行修改,这样会大大增加维护的成本,不方便管理。这时如果使用一个专门放配置中心的组件,将相同的配置信息放在配置中心,需要的时候直接拉取,这样可以大大节约维护的成本, 而zookeeper即可实现配置中心的功能。

image-20220307195432635

  • 分布式锁:

在多个用户访问同一台主机上的应用程序数据时,我们可以通过加锁解决并发操作的问题,但是如果有多台主机相同的应用程序要访问同一数据时,这个时候我们在一台主机上加锁是不能解决另一台主机的并发问题的,换句话说自己的锁只对自己有效并不影响别的 ,这个时候就需要分布式锁解决这类问题,我个人理解分布式锁像是从所有主机中抽取出来的一把锁,或者是有一把总锁对所有主机都有效。zookeeper可以实现分布式锁的功能

image-20220307200342280

  • 集群管理:

image-20220307200440212

zookeeper作为注册中心,管理服务提供方的ip地址端口号url信息,并在服务消费方请求需要时发送给服务消费方

🍋2.zookeeper的安装

🍊2.1环境准备:

zookeeper服务器是用Java创建的,运行在JVM之上。需要安装JDK7以上版本(最好JDK8或以上)

🍊2.2下载

官网下载地址:

Apache ZooKeeper

🍊2.3上传并安装

下载在本地之后可以把安装包上传到服务器或者虚拟机中,我使用的是服务器并远程shell连接

1.使用xshell 远程连接服务器,在opt目录下新建一个zookeeper目录

在这里插入图片描述

2.使用xftp将刚才下载的安装包上传到zookeeper目录下

在这里插入图片描述

3.进入zookeeper目录下解压

tar -zxvf apache-zookeeper-3.8.0-bin.tar.gz 

image-20220308112851104

4. 安装成功!

🍊2.4配置

进入conf配置目录

image-20220308113306625

zoo_sample.cfg就是配置文件,但是此文件不能生效,需要名称为zoo.cfg的文件才能生效

改名复制一份配置文件

image-20220308113519657

编辑配置文件zoo.cfg /tmp/zookeeper这个目录是zookeeper用于存储持久化的数据到本地的,但是服务器默认是没有的

image-20220311175938147

进入opt/zookeeper目录下,新建一个目录zkdata(目录名随意取)用于存放zookeeper的持久化数据

image-20220308113915311

复制此目录/opt/zookeeper/zkdata,将zoo.cfg配置文件中的dataDir修改为/opt/zookeeper/zkdata

保存退出!

🍊2.5启动zookeeper

image-20220308114501999
启动成功!

🍋3.zookeeper内存模型

🍊3.1模型

image-20220313212813160

🍊3.2模型的特点:

  • 每个子目录如/node1都被称作一个znode(节点)。这个znode是被它所在的路径唯一标识
  • znode可以有子节点目录,并且每个znode可以存储数据
  • znode是有版本的,每个znode中存储的数据可以有多个版本,也就是一个访问路径中可以存储多份
    数据
  • znode可以被监控,包括这个目录节点中存储的数据的修改,子节点目录的变化等,一旦变化可以通
    知设置监控的客户端

🍊3.3节点的分类:

1.持久节点(默认) 2.持久顺序节点 3.临时节点 4.临时顺序节点

1.create 节点path data

创建一个节点。并给节点绑定数据(默认是持久性节点)

2.create -s 节点path data

创建持久性顺序节点

3.create -e 节点path data

创建临时性节点

4.create -e -s 节点path data

创建临时顺序节点

(注意:临时节点不能含有任何子节点)

🍋4.zookeeper配置文件详解

image-20220312171808138

🍋5.zookeeper客户端常用命令

连接ZooKeeper服务端
./zkCli.sh -server ip:port 如果是本机连接可以不写 ip:port

断开连接 quit

CRUD

1.设置(修改)节点值

set 节点path value

2.查看命令帮助
help

3.删除单

评论 85
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

〖雪月清〗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值