【参考文章】:【分布式】Zookeeper使用--命令行
【参考文章】:zookeeper的数据模型
【参考文章】:zookeeper ACL使用
1. 安装包下载
选择一个具体的版本进行下载安装,官方安装包也可能有问题,一般不要选择最新的版本。
下载解压后查看目录是否有缺失,比如 缺失lib 目录会导致找不到主类。
2. 解压安装
tar -zxvf zookeeper-3.4.9.tar.gz
解压后目录如下:
重命名 conf 下的 zoo_samole.cfg 文件为 zoo.cfg
3. 常用命令
zkServer.sh 可以输入的参数如下:
bin/zkServer.sh {start|start-foreground|stop|restart|status|upgrade|print-cmd}
bin/zkServer.sh start 启动 zookeeper 服务
bin/zkServer.sh status 查看 zookeeper 服务状态
bin/zkServer.sh stop 停止 zookeeper 服务
bin/zkServer.sh restart 重启 zookeeper 服务
4. 客户端连接
bin/zkCli.sh 启动客户端,连接zookeeper,默认连接 localhost:2181
连接成功后可通过命令行使用 zookeeper 服务。
5. 客户端命令
客户端下可使用的命令如下所示:
5.0 ACL
表示为scheme:id:permissions,第一个字段表示采用哪一种机制,第二个id表示用户,permissions表示相关权限(如只读,读写,管理等)。zookeeper提供了如下几种机制(scheme):
world: 它下面只有一个id, 叫anyone, world:anyone代表任何人,zookeeper中对所有人有权限的结点就是属于world:anyone的
auth: 它不需要id, 只要是通过authentication的user都有权限(zookeeper支持通过kerberos来进行authencation, 也支持username/password形式的authentication)
digest: 它对应的id为username:BASE64(SHA1(password)),它需要先通过username:password形式的authentication
ip: 它对应的id为客户机的IP地址,设置的时候可以设置一个ip段,比如ip:192.168.1.0/16, 表示匹配前16个bit的IP段
super: 在这种scheme情况下,对应的id拥有超级权限,可以做任何事情(cdrwa)
5.1 创建节点
create [-s] [-e] path data acl
-s :即 SEQUENTIAL,添加该参数表示该节点为顺序节点,不加该参数则表示节点为非顺序节点,非顺序节点时 path 不能重复;
-e :即 EPHEMERAL,添加该参数表示该节点为临时节点,不加该参数则表示节点为持久化节点;
path :节点名称,必须以 / 开头,不能为空;
data :节点数据,不能为空;
acl :权限参数,可以为空
示例: