话不多说,直接上命令,按步骤执行即可~
1、查看JDK版本【Zookeeper需要Java环境】
java ‐version
2、下载并解压Zookeeper
wget http://archive.apache.org/dist/zookeeper/zookeeper-3.5.8/apache-zookeeper-3.5.8-bin.tar.gz
tar -zxvf apache-zookeeper-3.5.8-bin.tar.gz
3、重命名配置文件zoo_sample.cfg【备份原来的配置文件】
cd apache-zookeeper-3.5.8-bin/conf/
cp zoo_sample.cfg zoo.cfg
4、启动Zookeeper
bin/zkServer.sh start conf/zoo.cfg& #最后的‘&‘表示以守护线程的方式启动
5、连接Zookeeper
bin/zkCli.sh -server IP地址:2181 #默认端口为2181
1、创建节点的命令格式
create [‐s] [‐e] [‐c] [‐t ttl] 目录 [data] [acl]
??:create /node1
中括号为可选项,没有则默认创建持久化节点。
PS:Zookeeper没有相对路径的说法,任何对节点的操作都需要以/开头。
PS:临时节点不能创建子节点
PS:容器节点主要用来容纳字节点,如果没有给其创建子节点,容器节点表现和持久化节点一样,如 果给容器节点创建了子节点,后续又把子节点清空,容器节点也会被zookeeper删除。【分布式锁的父节点一般就是容器节点,因为当容器节点如果没有子节点(标识锁定的线程)时,会自动删除,不需要额外维护】
1、查看节点
get /node1 #查看/node1节点的值
ls / #查看/下的所有节点
1、修改节点
set /node1 ‘this is value‘ #设置/node1节点的值为this is value
set -v 2 /node1 ‘new value‘ #带上版本号去修改/node1节点的值为new value【带版本号可以实现类似于乐观锁的功能】
1、查看节点状态
stat /node1
针对节点的监听:由特定的事件触发,对应的监听会被移除。PS:事件监听都是一次性的。
使用方法:
get ‐w /path #注册监听的同时获取数据
stat ‐w /path #对节点进行监听,且获取元数据信息
Zookeeper事件类型:
定义:权限控制,可以控制节点的读写操作,保证数据的安全性。
组成:权限模式(Scheme)、授权对象(ID)、权限信息(Permission)
用来设置ZooKeeper服务器进行权限验证的方式。ZooKeeper 的权限验证方式大体分为两种类型:
定义:针对一个IP或者一段IP地址授予某种权限。
举个??:比如我们可以让一个IP地址为“120.24.58.161”的机器对服务器上的某个数据节点具有写入的权限。或者也可以通过“120.24.58.162/180”给一段IP地址的机器赋权。
定义:使用用户名和密码验证的方式。
在ZooKeeper中这种验证方式是Digest认证,而Digest这种认证方式首先在客户端传送“username:password”这种形式的权限表示符后,ZooKeeper服务端会对密码部分使用 SHA-1和BASE64算法进行简单加密,以保证安全性。
定义:默认方式,相当于全世界都能访问。
定义:不使用任何id,表示任何经过身份验证的用户【能登录就行~】。
定义:把权限赋予谁
举个??:如果我们选择采用IP方式,使用的授权对象可以是一个IP地址或IP地址段。
举个??:如果使用Digest或Super方式,则对应于一个用户名。
PS:World 模式,是授权系统中所有的用户。
权限就是指我们可以在数据节点上执行的操作种类,Zookeeper中已经定义好的权限有 5 种:
1、获取/node1节点的acl权限
getAcl /node1
2、修改/node1节点的acl权限
setAcl /node1 ip:127.0.0.1:cdrwa #ip的形式设置
Zookeeper(二)Zookeeper安装及常用命令总结
原文:https://www.cnblogs.com/riches/p/15124806.html