子节点创建、列出
首先,需要启动服务器,并使用zkCli.sh
连接服务器,进入客户端命令行界面(如第一关所述)。
创建子节点类似于创建新的节点,子节点也具有四种类型的节点。唯一的区别是:子节点的路径也将具有父路径。
例如,可以使用以下命令创建路径为/FirstZnode/Child1
,值为firstchildren
的节点(如图所示):
create /zoo1/Child1 "firstchildren"
列出zoo1
目录下所有子节点,使用以下命令(如图所示):
ls /zoo1
子节点与父节点一样,同样拥有四种类型的节点,再创建子节点时使用 -s
,-e
参数即可。
注意:当创建ZooKeeper子节点时,必须要确保父节点已经存在(即先创建父节点,再创建子节点),否则节点创建将会失败。例如,创建路径为/zoo2/Child1
,值为firstchildren
的节点,其中父节点/zoo2
不存在,使用以下命令(如图所示):
create /zoo2/Child1 "firstchildren"
子节点删除
子节点删除与第一关删除节点使用相同命令delete
,区别是在于子节点的路径也将具有父路径。例如,删除/zoo1
节点下的Child1
节点,使用以下命令(如图所示):
delete /zoo1/Child1
注意:即使父节点下没有任何的子节点,当前父节点仍然存在,不会被删除。只有进行删除操作才会删除节点(除临时节点会随会话结束自动删除)。
如果需要删除含有子节点的父节点,不能使用delete
命令,而是使用rmr
命令。rmr
命令会迭代删除父节点下所有子节点。例如/zoo1
下含有子节点/Child1
,若要删除/zoo1
,使用以下命令(如图所示):
rmr /zoo1
编程要求
本关任务是使用命令行,进行以下操作:
-
开启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 /
-
创建
/myNodeTmp
持久节点(节点数据为空)。
create /myNodeTmp ""
ls /
-
创建以
/myNodeTmp
为父节点的持久节点/firstChildTmp
(节点数据为空)
create /myNodeTmp/firstChildTmp ""
-
创建以
/myNode
为父节点的临时节点/firstChild
(节点数据为空)。
create -e /myNode/firstChild ""
-
创建以
/myNode
为父节点的持久节点/secondChild
(节点数据为空)。
create /myNode/secondChild ""
-
删除
/myNodeTmp
节点及其所有子节点。
rmr /myNodeTmp
-
断开客服端与服务器连接。
quit