zookeeper 多层创建节点 shell
时间: 2023-09-02 20:14:51 浏览: 188
在 ZooKeeper 中使用 shell 创建多层节点也可以使用递归方式。具体步骤如下:
1. 首先创建父节点,可以使用 `create` 命令创建一个不带数据的节点,例如:
```
create /parent ""
```
2. 然后创建子节点,需要在父节点下创建。可以使用 `create` 命令创建一个带数据的节点,例如:
```
create /parent/child "data"
```
3. 如果有多层子节点需要创建,可以使用递归方式创建。例如:
```
createNode() {
local path=$1
local data=$2
IFS='/' read -ra nodes <<< "${path}"
local nodePath=""
for node in "${nodes[@]}"; do
if [[ ! -z "${node}" ]]; then
nodePath="${nodePath}/${node}"
if [[ -z "$(zkCli.sh get ${nodePath} 2>/dev/null)" ]]; then
if [[ "${nodePath}" == "${path}" ]]; then
echo "create ${nodePath} ${data}" | zkCli.sh
else
echo "create ${nodePath} ''" | zkCli.sh
fi
fi
fi
done
}
```
这个方法会根据传入的路径,逐层创建节点,如果节点已经存在,则不会重复创建。最后一层节点会带上数据,其他节点不带数据。在 shell 中使用 `zkCli.sh` 命令可以连接 ZooKeeper 服务器,执行相应的命令。
阅读全文