Zookeeper环境搭建、数据模型、命令与操作、节点属性

目录

Zookeeper环境搭建

Zookeeper数据模型

Zookeeper的命令与操作

Zookeeper节点属性

下一篇:Zookeeper的Watch机制和API操作


Zookeeper环境搭建

主机名以及其myid值,myid越大权值越大

 

第一步:下载Zookeeper

 

第二部:解压到export/servers目录

 

第三步修改配置文件

在解压好的目录中找conf进入

里面有个zoo_sample.cfg是个模板,我们要拷贝成zoo.cfg

进入修改

打开该行注释,意思是最多保留三个日志文件

 

日志多久清理一次,这里默认是1

 

配置集群中服务器的地址server.1,2,3代表权值2888和3888端口是固定的

保存退出

在上面这一行加上我们之后要写的一个myid文件的目录

 

第四步:添加myid配置

在第一台机器的

/export/servers/zookeeper-3.4.9/zkdatas/这个路径下创建一个文件,文件名为myid

内容为1

zkdatas需要自己创建

只有一个1

 

 

第五步:将安装包分发给其他机器

scp -r /export/servers/zookeeper-3.4.9/ node02:/export/servers/  注:如果pwdservers下面后面的路径可以写为$PWD

并修改他们各自的myid文件为他们各自的权值

 

 

第六步:三台机器都启动Zookeeper

在bin目录下执行 ./zkServer.sh start

启动成功

 

 

查看谁是Leader

在bin目录在把上面的启动命令的start换成status

node01  

 

node02

发现node02是leader

Zookeeper数据模型

一、特点:

1、树形层次结构

2、兼具文件和目录,在有权限的情况下可以增删改查

3、存数据大小有限制,一般用于管理调度数据(如:配置文件信息、状态信息、汇集位置)

每个znode的数据大小至多1m

4、znode通过路径引用,路径必须是绝对的,/zookeeper这个文件用于保存管理Zookeeper的相关信息,不能删

5、每个Znode由3部分组成:

stat:状态信息,描述Znode的版本,权限等

data:与该节点关联的数据

children:该Znode下的子节点

 

二、节点类型

临时节点:生命周期依赖于创建它们的会话(客户端联系服务器)。一旦会话结束,临时节点将被自动删除,也可以主动删除,当然临时节点不能拥有子节点

永久节点:生命周期不依赖于会话,并且只有在客户端显示执行删除操作时它们才能被删除

 

序列化特性:如果指定序列化,Znode在创建的时候名字后面会自动追加一个不断增加的序列号。序列号对此节点的父节点来说是惟一的,记录每个子节点创建的先后顺序,格式是%10d,没有的数值用0补充,例:0000000001

 

这样有了4种类型的Znode节点,分别对应

PERSISTENT:永久节点

EPHEMERAL:临时节点

PERSISTENT_SEQUENTIAL:永久节点、序列化

EPHEMERAL_SEQUENTIAL:临时节点、序列化

Zookeeper的命令与操作

一、登录Zookeeper客户端

bin目录下输入 zkCli.sh -server node01(这是连接的主机名):2181,如果不加主机名+端口号进入的就是本机

2181端口是在zoo.cfg中指定的

出现一堆东西就是启动成功了

输入quit就是退出

 

随便敲入一个东西,就会出现一堆命令提示

 

 

二、命令学习

命令

说明

参数

create [-s] [-e] path data acl

创建node,data代表创建时携带的参数,acl代表权限控制

-s代表是一个序列化节点

-e是一个临时节点,不加表示是个永久节点

ls path [watch]

列出Path下面所有Znode

 

get path [watch]

获取Path对应的数据和属性

 

set path data [version]

更新节点

version数据版本

delete path

删除节点,不能删有子节点的

 

rmr

递归删除

 

history

列出历史记录

 

 

三、操作实例:

1、列出Path下所有Znode

ls /

2、创建永久节点:

create /hello world       这里hello是路径,world是参数

 

3、创建临时节点:

create -e /tem world

创建后我们quit退出

再进入看看temp还存不存在

发现这时已经没有了

4、创建序列化节点

5、临时序列化节点

6、永久节点创建子节点

尝试临时节点创建子节点

报错了

7、修改节点数据

set /hello xxx

8、通过get获取数据看看改没改

得到xxx

9、删除节点,如果有子节点则无法删除

delete /hello

10、递归删除,全删

rmr /abc

10、列出历史记录

history

Zookeeper节点属性

一、获取

每个Znode都包含一系列的属性,可以通过get,获取属性

二、属性

dataVersion:数据版本号,每次set,dataVersion都会+1(即使没修改数据)

cversion:子节点的版本号,当Znode的子节点变化时就+1

ACLVersion:ACL的版本号

cZxid:Znode创建的事务id

mZxid:Znode被修改的事务id,即每次对Znode的修改都会更新mZxid

对于zk来说每次变化都会产生一个唯一的事务idzxid,通过该id确定更新操作的先后顺序

例如:zxid1<zxid2,说明zxid1先于2发生,zxid对于整个zk都是唯一的

ctime:节点创建时的时间戳

ephemeralOwner:如果该节点为临时节点,ephemeralOwner值表示与该节点绑定的session id(当前会话id),如果不是则为0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值