zookeeper基本命令行操作

本文介绍了Zookeeper客户端的常用命令,包括创建持久节点、短暂节点及其有序和无序类型,以及如何监听节点值变化、删除节点和查看节点状态。详细解析了每个操作的实例,如创建带序号的持久节点`create-s/yinxiongfeileier`和删除节点`delete/yingxiong/lianmeng`。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Zookeeper客户端命令行操作

zookeeper节点类型(持久/短暂/有序号/无序号)

持久:客户端和服务端断开连接后 创建的节点不删除

创建持久节点 create /yingxiong "daomei"

创建带序号的持久节点

[zk: localhost:2181(CONNECTED) 14] create  -s  /yinxiong   "feileier"
Created /yinxiong0000000001

短暂:客户端和服务端断开连接后,创建的节点自己删除

zk: localhost:2181(CONNECTED) 5] create -e /yingxiong "zhumei"
zk: localhost:2181(CONNECTED) 5] create -e -s /yingxiong "zhumei"  带序号的

监听节点值的变化

get -w  /yingxiong

注意 :注册一次生效一次 想多次生效就要注册多次

节点的删除与查看

删除节点
delete /yingxiong/lianmeng 
递归删除节点
deleteall /yingxiong/lianmeng

[zk: localhost:2181(CONNECTED) 9] deleteall /yingxiong
[zk: localhost:2181(CONNECTED) 10] ls /yingxiong
Node does not exist: /yingxiong

查看节点状态
stat /yingxiong

[zk: localhost:2181(CONNECTED) 16] stat /yinxiong0000000001
cZxid = 0x13
ctime = Tue Sep 14 09:15:20 CST 2021
mZxid = 0x13
mtime = Tue Sep 14 09:15:20 CST 2021
pZxid = 0x13
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 8
numChildren = 0
<think>好的,我现在需要回答用户关于Zookeeper命令行登录和设置密码的问题。首先,我需要确认自己对这两个操作的理解是否正确,然后按照步骤一步步解释清楚。 首先,关于命令行登录。Zookeeper默认情况下是没有启用身份验证的,用户可以直接使用zkCli.sh连接到本地服务器。但如果有配置ACL或者启用了SASL认证,可能需要额外的参数。比如,使用- server参数指定远程地址和端口。这里可能需要提到两种连接方式:本地和远程,以及是否需要认证信息。 然后是设置密码,也就是配置ACL。Zookeeper的ACL可以通过addauth命令添加认证信息,比如使用digest模式,用户名和密码。用户需要知道如何创建带ACL的节点,以及如何添加认证。可能还需要说明如何修改现有节点的ACL,或者递归设置权限。这里需要注意ACL的不同模式,如digest、ip等,但用户主要问的是密码,所以focus在digest模式。 需要确保用户了解zkCli.sh的基本使用,比如启动客户端,执行addauth命令,create节点时指定ACL。可能还需要提醒密码是加密存储的,使用明文需要加“明文:”前缀。例如,生成摘要的方法,或者使用Java的org.apache.zookeeper.server.auth.DigestAuthenticationProvider生成密文。 另外,用户可能遇到的问题包括忘记添加认证信息导致没有权限,或者ACL设置不正确。需要提到如何处理这些情况,比如在连接后立即执行addauth,或者在创建节点时正确设置ACL。 最后,结构要清晰,分步骤说明登录和设置密码的过程,确保命令示例正确,使用$和$$符号包裹代码和公式。可能需要检查是否有语法错误,比如转义字符是否正确,特别是涉及LaTeX的地方是否合规。 总结步骤: 1. 命令行登录Zookeeper:本地和远程连接,是否需要认证。 2. 设置密码(配置ACL):添加认证信息,创建节点时指定ACL,修改现有节点的ACL。 3. 示例命令,包括addauth、create、setAcl等。 4. 注意事项,如密码加密,明文处理,递归设置ACL等。 5. 常见问题或错误处理。</think>以下是Zookeeper命令行登录及设置密码的逐步说明: --- ### **一、Zookeeper命令行登录** Zookeeper默认通过`zkCli.sh`(或`zkCli.cmd`)工具连接。以下是两种常见场景: #### **1. 本地连接(默认配置)** ```bash $ ./zkCli.sh ``` - 默认连接到`localhost:2181`,无需额外参数。 #### **2. 远程连接** ```bash $ ./zkCli.sh -server <IP>:<PORT> ``` - 示例:连接到`192.168.1.100:2181` ```bash $ ./zkCli.sh -server 192.168.1.100:2181 ``` #### **3. 带认证的连接** 若节点配置了ACL(访问控制列表),需先添加认证信息: ```bash # 连接后执行 [zk: localhost:2181(CONNECTED) 0] addauth digest <用户名>:<明文密码> ``` --- ### **二、设置密码(配置ACL)** Zookeeper通过ACL控制节点权限。以下是使用`digest`模式设置密码的步骤: #### **1. 创建带ACL的节点** ```bash # 语法:create <路径> <数据> auth:<用户名>:<密码明文>:<权限> [zk: localhost:2181(CONNECTED) 0] create /secure-node "data" digest:user:password:cdrwa ``` - **权限说明**: - `c`=创建, `d`=删除, `r`=读取, `w`=写入, `a`=管理ACL #### **2. 为现有节点设置ACL** ```bash # 语法:setAcl <路径> auth:<用户名>:<密码明文>:<权限> [zk: localhost:2181(CONNECTED) 1] setAcl /existing-node digest:user:password:cdrwa ``` #### **3. 递归设置ACL(需Zookeeper 3.6+)** ```bash [zk: localhost:2181(CONNECTED) 2] setAcl -R /parent-node digest:user:password:cdrwa ``` --- ### **三、注意事项** 1. **密码加密**: - Zookeeper存储的密码是密文(Base64编码的SHA1哈希)。若需生成密文: ```bash $ java -cp zookeeper.jar:lib/* org.apache.zookeeper.server.auth.DigestAuthenticationProvider user:password ``` $$输出示例:user:password->user:XDkd7sE2j9B4hGAqq0qC7Z6x5iQ=$$ 2. **明文密码处理**: - 在`addauth`或`create/setAcl`命令中,明文密码需添加前缀`明文:`: ```bash addauth digest user:明文:password ``` 3. **权限验证失败**: - 若操作节点时返回`Authentication is not valid`,请检查是否已执行`addauth`。 --- ### **四、操作示例** ```bash # 登录并设置带密码的节点 $ ./zkCli.sh -server 127.0.0.1:2181 [zk: 127.0.0.1:2181(CONNECTED) 0] addauth digest user:明文:123456 [zk: 127.0.0.1:2181(CONNECTED) 1] create /test-secure "data" digest:user:123456:cdrwa ``` --- 通过以上步骤,您可以通过命令行登录Zookeeper并设置基于密码的访问控制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值