Zookeeper--命令行操作

Zookeeper支持某些特定的四字命令字母与其的交互。他们大多数是查询命令,用来获取Zookeeper服务的当前状态及相关信息。用户在客户端可以通过telnetnc 向Zookeeper提交相应的命令。
Zookeeper--命令行操作

Shell操作

下面是几个简单的示例,这些并不是在Zookeeper客户端进行的,而是在正常的linux中的shell命令行。
Zookeeper--命令行操作

Zookeeper的shell操作

首先,需要进入到Zookeeper的客户端,连接到相关的服务之后可以输入help来查看对应的命令:
Zookeeper--命令行操作
几个常用的命令解释:

命令 描述
ls 和linux的shell一样,列出某个路径下的节点
create pathname [data] 创建一个新的Znode节点,参数为节点的绝对路径和它相关的字符(数据)
get pathname 获取节点下的信息,包括3个部分,data,stat,children
set pathname data 更新节点的数据
delete pathname 删除某个节点

关于设置权限的命令setAcl,Zookeeper包括四个内置的schema,包括world,auth,digest,ip。默认为world:

  • world:其权限相当于任何人都可操作,有个单一的ID,anyone
  • auth:不使用任何ID,表示任何通过验证的用户(这里不知是通过zk验证的用户,还是连接到此zk服务器的用户)
  • digest:使用用户名:密码,字符串生成的MD5哈希值作为ACL标识符。权限的验证通过直接发送用户名密码字符串的方式完成。(常用的方式)
  • ip:使用客户端主机ip地址作为一个ACL标识符,ACL表达式以addr/bites的形式表示,zk服务器会将addr的前bits位与客户端地址的前bits位来进行匹配验证权限。

一般会采用digest的方式来进行Zookeeper中的权限控制,在命令行客户端中,如果密码采用明文会有问题,网上的其他同胞发现digest的密码生成方式是Sha1摘要的base64形式,所以可以用其他语言生成密码摘要再进行操作。
下面是一个使用digest控制权限的简单示例:
Zookeeper--命令行操作
Zookeeper--命令行操作