我拉着动物园管理员 http://hadoop.apache.org/zookeeper/进入一个用于并发管理的项目,我尝试的第一件事对我来说是非常明显的(使用 zkpython 绑定):
zh = zookeeper.init('localhost:2181')
zookeeper.create(zh, '/path/to/a/node', '', [ZOO_OPEN_ACL_UNSAFE])
我回来了NoNodeException
为了我的麻烦。
在反思这一点并查看文档(例如它们)之后,我一直无法找到一种方法来完成相当于mkdir -p
ZooKeeper 将为我创建缺少的父节点。
我是否遗漏了任何内容,或者无论我喜欢与否,我只是坚持为路径的每个部分发出单独的 create() ?
您必须为路径的每个元素发出单独的 create() 。 Zookeeper 仅内置原子操作。递归创建路径不再是原子操作。如果操作在创建一半路径元素后挂起,Zookeeper 无法知道您想要它做什么。
我不知道 python 中是否已经有 Zookeeper 辅助库。 java (zkClient) 中有一个可以让您通过多次调用 create() 创建递归路径。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)