Zookeeper CLI - 通配符支持

时间:2014-07-31 06:35:45

标签: apache-zookeeper

看起来zookeeper CLI(zkCli.sh)不支持通配符 - 我没有查看动物园管理员代码,以确定它是否可能是设计明智的,或者我是否遗漏了一些愚蠢的东西。

以递归方式删除以字符串开头的节点的最佳方法是什么。我想做点什么:

./zkCli.sh rmr abc*

删除以abc开头的所有节点。除了使用Java / Python或类似的客户端之外,还有更简单的方法吗?或者换句话说,这只能通过ZK CLI实现吗?

1 个答案:

答案 0 :(得分:6)

不,当前zkCli.sh不支持通配符删除(根据实现 zkCli.shDeleteCommandpython zkDelAll.py /abc

使用的类

然而,创建一个变通方法是非常直截了当的,例如,在Python中使用DeleteAllCommand。结帐Kazoo,用法为:*

有趣的是,/abc*是一个有效的路径字符,因此您可以使用路径from kazoo.client import KazooClient zk = KazooClient(hosts='localhost:2181') zk.start() for child in zk.get_children('/'): if child.startswith('abc'): zk.delete('/' + child) zk.stop() 创建一个znode。

编辑: 要点的核心实现如下:

{{1}}