跳转到主要内容

vsc-zk 包含用于使用 zookeeper 构建 zookeeper 树和工具的脚本。

项目描述

描述

vsc-zk 包含用于使用 zookeeper 构建 zookeeper 树和工具的脚本。

vsc-zk

zookeeper 工具

vsc-zk 包含用于使用 zookeeper 构建 zookeeper 树和工具的脚本。

  • zkinitree 从配置文件在 zookeeper 中构建树。

  • vsc-zkrsync 在同步(大型的)(共享)文件系统时使用 zookeeper 在多个节点之间分发 rsync。

    在执行实际数据同步之前,大量 rsync 调用都花费在收集所需元数据上。在增量 rsync 的情况下,这个问题会更严重。在多个进程之间分配负载可能会导致显著的性能提升,尽管其他瓶颈,如访问元数据,可能会变得明显。

    该实现使用 zookeeper 协调收集和同步数据的分配。

安装 Zookeeper

需要一个具有适当 ACL 的 zookeeper 服务器到基础 znode(zookeeper 节点)。

如果不存在此类服务器,可以按以下方式安装

zkversion=3.4.6
basepath=`mktemp -d` # not permanent, choose other directory as desired

mkdir -p $basepath/zk/server/data
cd $basepath/zk/server
# use another mirror if needed
wget http://apache.belnet.be/zookeeper/zookeeper-$zkversion/zookeeper-$zkversion.tar.gz
tar xzf zookeeper-$zkversion.tar.gz

rm -f zkServer.sh
cat > zkServer.sh <<EOF
#!/bin/bash
./zookeeper-$zkversion/bin/zkServer.sh \$@
EOF
chmod +x zkServer.sh

cat > zk.conf <<EOF
tickTime=2000
dataDir=$PWD/data
clientPort=2181
EOF

启动 zookeeper 服务器

`./zkServer.sh start $PWD/zk.conf `

注意:您应该已经安装了 Java(JDK 6 或更高版本)以运行 Zookeeper。更多信息可以在 Zookeeper 文档中找到。

依赖关系

Vsc-zk 需要

  • ZooKeeper 3.4 或更高版本,因为它使用事务。
  • Kazoo 1.3.1 或更高版本 (pip install kazoo)
  • vsc-base 的最新版本 (>= 1.6.7)

构建初始 zookeeper 树

使用 zkinitree 从配置文件在 zookeeper 中构建初始树。它将创建具有指定 ACL 的路径。

示例配置文件可以在示例文件夹中找到(zkinitree.cfg)

zkrsync 的用法

N-并行化 rsync 的示例用法

将可重用值放入配置文件中,例如 zkrs.conf

[MAIN]
servers=<servers> 
session=<session>
domain=<domain>
daemon=true
user=<user>
passwd=<password>
depth=<depth>
#debug=true
#dryrun=false
#delete=false

启动 N+1 个源(第一个源客户端将是主节点)

zkrsync -S -r <sourcepath> --configfiles=zkrs.conf

启动 N 个目标

zkrsync -D -r <destpath> --configfiles=zkrs.conf

测试路径构建:添加 pathsonly 选项

运行 zkrsync -H 查看所有选项

默认日志记录到 /tmp/zkrsync/<session>-<source|dest>-<pid>.log。使用 logfile 选项来更改模板。使用 debug 选项(或短 -d)进行更详细的日志记录。

在守护进程模式下运行时,将生成一个 pidfile。默认位置是 /tmp/zkrsync/<session>-<source|dest>-<pid>.pid(pid 是启动守护进程的进程的 pid)。这也可以使用 pidfile 选项进行模板化。

如果(与 Zookeeper 相关的)出现问题(尚未进行清理)

  • 杀死所有正在运行的源和目标客户端(该会话)
  • 等待大约 20 秒(视情况而定),确保所有 Zookeeper 连接都已超时
  • 运行 exactly one source client,如果之前的关闭没有干净完成,Zookeeper 会识别这一点,并在退出前尝试进行新的清理。
  • 如果之前的步骤未能清理,可能仍然有一个正在运行的客户端。确保它们都被杀死
  • 启动一个新的 zkrsync 进程

全局说明

  • 始终定义一个会话以确保您不会混淆不同的会话
  • 确保参数路径、dryrun 和 delete 都相同:这些参数(在此时刻)未进行检查,并且每个客户端将使用自己的参数。这可能导致不一致(例如,一些路径使用 dry-run 选项运行,而其他路径则实际上是同步的。)
  • 参数深度仅在路径构建中使用,因此源主节点将始终提供此参数。

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分布

vsc-zk-2.0.7.tar.gz (50.8 kB 查看哈希

上传时间

由以下机构支持