子节点创建、列出

首先,需要启动服务器,并使用zkCli.sh连接服务器,进入客户端命令行界面(如第一关所述)。

创建子节点类似于创建新的节点,子节点也具有四种类型的节点。唯一的区别是:子节点的路径也将具有父路径

例如,可以使用以下命令创建路径为/FirstZnode/Child1,值为firstchildren的节点(如图所示):

create /zoo1/Child1 "firstchildren"

sealos 子节点 可以装docker 创建子节点_数据

列出zoo1目录下所有子节点,使用以下命令(如图所示):

ls /zoo1

sealos 子节点 可以装docker 创建子节点_父节点_02

子节点与父节点一样,同样拥有四种类型的节点,再创建子节点时使用 -s-e 参数即可。

注意:当创建ZooKeeper子节点时,必须要确保父节点已经存在(即先创建父节点,再创建子节点),否则节点创建将会失败。例如,创建路径为/zoo2/Child1,值为firstchildren的节点,其中父节点/zoo2不存在,使用以下命令(如图所示):

create /zoo2/Child1 "firstchildren"

sealos 子节点 可以装docker 创建子节点_子节点_03

子节点删除

子节点删除与第一关删除节点使用相同命令delete,区别是在于子节点的路径也将具有父路径。例如,删除/zoo1节点下的Child1节点,使用以下命令(如图所示):

delete /zoo1/Child1

sealos 子节点 可以装docker 创建子节点_父节点_04

注意:即使父节点下没有任何的子节点,当前父节点仍然存在,不会被删除。只有进行删除操作才会删除节点(除临时节点会随会话结束自动删除)。

如果需要删除含有子节点的父节点,不能使用delete命令,而是使用rmr命令。rmr命令会迭代删除父节点下所有子节点。例如/zoo1下含有子节点/Child1,若要删除/zoo1,使用以下命令(如图所示):

rmr /zoo1

sealos 子节点 可以装docker 创建子节点_开发语言_05

编程要求

本关任务是使用命令行,进行以下操作:

  • 开启ZooKeeper服务器。
  • 使用客户端(zkCli.sh)连接服务器(IP:127.0.0.1,端口号:2181)。
zkServer.sh start

zkCli.sh -server 127.0.0.1:2181
  • 创建/myNode持久节点(节点数据为空,可利用ls命令检查是否存在)。
create /myNode ""
ls /

sealos 子节点 可以装docker 创建子节点_开发语言_06

  • 创建/myNodeTmp持久节点(节点数据为空)。
create /myNodeTmp ""
ls /

 

sealos 子节点 可以装docker 创建子节点_数据_07

  • 创建以/myNodeTmp为父节点的持久节点/firstChildTmp(节点数据为空)
create /myNodeTmp/firstChildTmp ""
  • 创建以/myNode为父节点的临时节点/firstChild(节点数据为空)。
create -e /myNode/firstChild ""
  • 创建以/myNode为父节点的持久节点/secondChild(节点数据为空)。
create  /myNode/secondChild ""
  • 删除/myNodeTmp节点及其所有子节点。
rmr /myNodeTmp
  • 断开客服端与服务器连接。
quit

sealos 子节点 可以装docker 创建子节点_子节点_08