zookeeper使用

2,727 阅读3分钟

这是我参与8月更文挑战的第3天,活动详情查看:8月更文挑战

一、zookeeper环境搭建

zookeeper安装以Linux环境为例。

1) 、单机环境

1、 安装jdk

网上资料很多,可以自行查找。

2、 下载zookeeper

网址:zookeeper.apache.org/releases.ht…

3、 解压缩包

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

4、 进入 apache-zookeeper-3.6.1-bin目录,修改zoo_sample.cfg文件名称 cd apache-zookeeper-3.6.1-bin

cd conf

mv zoo_sample.cfg zoo.cfg

5、 zookeeper服务启动

cd ..

bin/zkServer.sh start

输出以下内容表示启动成功

查看启动状态

bin/zkServer.sh status

关闭服务器

bin/zkServer.sh stop

在次查看服务器状态

2) 、集群环境

真实的集群是需要部署在不同的服务器上的,但是在我们的测试时启动多个虚拟机的内存消耗太大,所以我们通常会搭建伪集群,也就是把所有的服务都搭建在一台虚拟机上,用端口进行区分。

准备工作

1、 安装jdk

2、 下载zookeeper

3、 zookeeper解压,将conf下zoo_sample.cfg复制三份文件并改名为zoo1.cfg、zoo2.cfg、zoo3.cfg

4、 在解压后的zookeeper目录下创建data目录,并分别创建三个子目录data1、data2、data3

5、 配置每个zookeeper的dataDir(zoo.cfg)clientPort分别为2181、2182、2183

配置集群

1、 在每个zookeeper的data目录下创建一个myid文件,内容分别是1、2、3。这个文件就是记录每个服务器的ID

2、 在每个zookeeper的zoo.cfg配置客户端访问端口clientPort和集群服务器IP列表。

server.1=127.0.0.1:2881:3881

server.2=127.0.0.1:2882:3882

server.3=127.0.0.1:2883:3883

server.服务器ID=服务器IP地址:服务器之间通信端口:服务器之间投票选举端口 启动集群

依次启动三个zk实例,其中有一个leader和两个follower

二、zookeeper基本使用

数据结构

zookeeper数据模型的结果与Unix文件系统很类似,整体上可以看做是一棵树,每个节点称为一个ZNode,每一个ZNode都可以通过其路径唯一标识

ZNode节点类型

1、 持久化目录节点(Persisitent):客户端与zookeeper断开连接后,该机诶单依旧存在

2、 持久化顺序编号目录接地那(Persisitent_Sequential):客户端与zookeeper断开连接后,该节点依旧存在,zookeeper会给该节点按照顺序编号

3、 临时目录节点(Ephemeral):客户端与zookeeper断开连接后,该节点被删除

4、 临时顺序编号目录节点(Ephemeral_Sequential):客户端与zookeeper断开连接后,该节点被删除,zookeeper会给该节点按照顺序编号

命令行使用

通过zkClient进入zookeeper客户端命令行,输入help查看zookeeper客户端的指令

如上图列出了zookeeper所有的客户端命令行,下面主要讲解常见的几个命令行

1、查看当前节点数据并能看到更新次数等数据

ls -w /

2、创建节点 -s含有序列 -e临时

create zktest data

3、获得节点的值

get /zktest

4、设置节点的值

set /zktest data1

5、查看节点状态

stat /

6、删除节点

delete /zktest

7、递归删除节点

rmr /zktest