这是我参与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