apache-zookeeper - 如何清除数据节点的所有子节点,但不删除 Zookeeper 中的数据节点本身?
问题描述
我有一个znode:/test
并且/test
有两个子节点:/test/data1
,/test/data2
如何删除/test/data1
and/test/data2
但同时不删除节点/test
?
解决方案
您可以执行以下操作:
zkCli.sh -server xxx ls /test | \
grep "^\[" | \
grep -o -P "\w*" | \
while read znode ; do zkCli.sh -server xxx delete /test/$znode ; done
这仅使用 zkCli.sh 和 bash 命令,但不是最佳的,因为它多次连接到 ZooKeeper 服务器(每次直接删除子项 + 一次用于获取子项列表)。更直接的方法是使用 ZooKeeper 客户端库(如 kazoo 或 ZooKeeper Java API)来执行此类任务。
推荐阅读
- vba - 通过固定文本和 * 通配符进行字符串搜索
- symfony - 如何在 dql 中找到适合 IF 的查询?
- python-3.x - Python:os.walk 用于扫描指定目录和搜索指定文件问题
- iphone - UIView 沿 Y 轴平移手势
- angular - 带有动态 URL 的 API 调用 - 可观察的未定义
- android - 另一个“尝试在 Project 上安装所需的 android 组件时发生错误...”
- amazon-ec2 - 如何使用现有密钥对通过 docker-machine 创建 EC2 实例?
- wordpress - Woocommerce 前端的重复类别
- c# - 如何创建一个可以订购孩子的课程?
- python - Django allauth 注册按钮突然停止工作