任务描述
本关任务:掌握使用客服端创建删除不同类型的子节点,以及列出指定目录下的所有节点。
相关知识
为了完成本关任务,你需要掌握:1.节点创建、删除、列出方法,4.节点类型。
子节点创建、列出
首先,需要启动服务器,并使用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)。
- 创建
/myNode
持久节点(节点数据为空,可利用ls
命令检查是否存在)。 - 创建
/myNodeTmp
持久节点(节点数据为空)。 - 创建以
/myNodeTmp
为父节点的持久节点/firstChildTmp
(节点数据为空) - 创建以
/myNode
为父节点的临时节点/firstChild
(节点数据为空)。 - 创建以
/myNode
为父节点的持久节点/secondChild
(节点数据为空)。 - 删除
/myNodeTmp
节点及其所有子节点。 - 断开客服端与服务器连接。
测试说明
本关的测试需要用户在右侧的命令行下完成,用户只需将需要完成的命令在右侧命令行下直接操作即可,然后点击评测按钮,平台会自动验证用户是否按照要求去检测结果。
开始你的任务吧,祝你成功!
/opt/zookeeper-3.4.12/bin/zkServer.sh start //这里要注意IP和接口写错了就要重来了!!! /opt/zookeeper-3.4.12/bin/zkCli.sh -server 127.0.0.1:2181 create /myNode "" create /myNodeTmp "" create /myNode/secondChild "" // create /myNode/firstChild "" 注意创立临时节点必须加上 -s //创建持久节点加不加 -e 都行 create -s /myNode/firstChild ""