zookeeper 是一种为分布式应用提供一致性服务的协调系统,是开源 hadoop 项目下的一个子项目。
zookeeper的安装部署总共有3种:
- 单机模式(stand-alone):单机单 server
- 集群模式:多机多 server,形成集群
- 伪集群模式:单机多个 server,形成伪集群
这里只讲 单机模式
首先 从 Apache 官网上 获取 zookeeper 的 安装包
可以通过wget 和 tar 命令 下载并解压
单机模式
//进入zookeeper的conf目录里面有zookeeper的配置文件
cd zookeeper/conf
//拷贝一份zookeeper的配置文件
cp zoo_sample.cfg zoo.cfg
//通过vi编辑zookeeper的配置文件 基本配置实用的默认的就行了修改下 dataDir的目录
dataDir = xx/xx/zookeeper_home/data
在zookeeper的安装目录下通过 mkdir创建一个data目录
进入 bin 目录
./zkServer.sh start
启动zookeeper
通过zkCli连接zk
./zkCli.sh -server 127.0.0.1:2181
//输入help 查看 命令
[zk: 127.0.0.1:2181(CONNECTED) 0] help
创建节点
格式:create [-s] [-e] path data acl
-s 表示创建一个有序的节点
-e表示创建一个临时的节点
关于 ACL
Zookeeper的ACL,可以从三个维度来理解:一是scheme; 二是user; 三是permission,通常表示为scheme:id:permissions
授权方式:
scheme: scheme对应于采用哪种方案来进行权限管理,zookeeper实现了一个pluggable的ACL方案,可以通过扩展scheme,来扩展ACL的机制。zookeeper缺省支持下面几种scheme:
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
world: 它下面只有一个id, 叫anyone, world:anyone代表任何人,zookeeper中对所有人有权限的结点就是属于world:anyone的
关于ACL 的资料可以看这里
每个ACL 都会有一个权限列表
r表示"read",w表示"write",c表示"create",d表示"delete",a表示"admin"
Zookeeper 权限定义:
权限 | 描述 | 备注 |
CREATE | 有创建子节点的权限 | |
READ | 有读取节点数据和子节点列表的权限 | |
WRITE | 有修改节点数据的权限 | 无创建和删除子节点的权限 |
DELETE | 有删除子节点的权限 | |
ADMIN | 有设置节点权限的权限 |
node节点中的元数据