zookeeper数据存储形式 zookeeper安装 zookeeper命令行客户端的使用
1 zookeeper数据存储形式
zookeeper
中对用户的数据采用kv
形式存储
key
:是以路径的形式表示的,各key之间有父子关系,比如 /
是顶层key
用户建的key
只能在/ 下作为子节点,比如建一个key: /aa
这个key
可以带value
数据
也可以建一个key
: /bb
也可以建多个key
: /aa/xx
zookeeper
中,对每一个数据key
,称作一个znode
2 znode类型
zookeeper
中的znode
有多种类型:
- 1、
PERSISTENT
持久的:创建者就算跟集群断开联系,该类节点也会持久存在与zk
集群中 - 2、
EPHEMERAL
短暂的:创建者一旦跟集群断开联系,zk
就会将这个节点删除 - 3、
SEQUENTIAL
带序号的:这类节点,zk
会自动拼接上一个序号,而且序号是递增的
组合类型:
PERSISTENT
:持久不带序号EPHEMERAL
:短暂不带序号PERSISTENT
且SEQUENTIAL
:持久且带序号EPHEMERAL
且SEQUENTIAL
:短暂且带序号
3 安装zookeeper
解压安装包 zookeeper-3.4.6.tar.gz
修改conf/zoo.cfg
Code
1 | # The number of milliseconds of each tick |
对3台节点,都创建目录/usr/local/bigdata/data/zkdata
对3台节点,在工作目录中生成myid
文件,但内容要分别为各自的id
: 1
,2
,3
shell
1 | Master上: echo 1 > /usr/local/bigdata/data/zkdata/myid |
4 启动zookeeper集群
zookeeper
没有提供自动批量启动脚本,需要手动一台一台地起zookeeper
进程
在每一台节点上,运行命令:
shell
1 | bin/zkServer.sh start |
启动后,用jps
应该能看到一个进程:QuorumPeerMain
查看状态
shell
1 | bin/zkServer.sh status |
5 编写启动脚本zkmanage.sh
zookeeper
没有提供批量脚本,不能像hadoop
一样在一台机器上同时启动所有节点,可以自己编写脚本批量启动。
c
1 | #!/bin/bash |
- $1 :指接收第一个参数
运行命令:
shell
1 | sh zkmanage.sh start #启动 |
6 zookeeper命令行客户端
启动本地客户端:
shell
1 | bin/zkCli.sh |
启动其他机器的客户端:
shell
1 | bin/zkCli.sh -server Master:2181 |
基本命令:
- 查看帮助:
help
- 查看目录:
ls /
- 查看节点数据:
get /zookeeper
- 插入数据:
create /节点 数据
, 如:create /aa hello
- 更改某节点数据:
set /aa helloworld
- 删除数据:
rmr /aa/bb
- 注册监听:
get /aa watch
–>数据发生改变会通知 ;ls /aa watch
–>目录发现改变也会通知