您如何备份Zookeeper?

| 我已经读过复制数据目录将起作用。但是,这是日志和快照的组合。人们如何备份动物园管理员基础设施?出口 ?转储?自定义脚本?最佳做法是什么?     
已邀请:
        我们正在修改zkConfig.py脚本,该脚本是您在安装Zookeeper时提供的项目。它使您可以通过python脚本与zookeeper进行交互。 我们正在修改脚本,以便每晚轻松地转储并保存全部内容,然后备份文件。尽管我也很好奇听到其他人对此的解决方案。     
        一旦确定快照有足够的事务,并且每个新快照完全取代了旧的快照,Zookeeper就会写入快照。因此,最新快照+快照时的事务日志足以恢复到当前状态。为了简化计算,您可以简单地备份最后3个快照(以防最新快照损坏)和与最早快照相对应的时间戳备份事务日志。以下链接具有更多详细信息。 http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_dataFileManagement http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance     
        Netflix为这个所谓的参展商提供了一个解决方案。这是一个“ ZooKeeper协同过程,用于实例监视,备份/恢复,清理和可视化。”     
        我只是有相同的要求,发现大多数可用选项要么不起作用,要么需要大量自定义。 我发现最好的选择是Guano,它是一个小型Java应用程序,它从声明的节点开始递归地访问树中的每个节点,并将其转储到匹配的目录结构中,因此最终得到的是纯文件的目录结构,其结构类似于实际的树。 您还可以通过要求它从该树中的任何点递归还原来还原这些备份。我认为这对于备份和探索都非常不错。例如,我立即从根目录使用ack来查找所有我关心的条目的文件。 只需将其作为cron作业并添加一个zip步骤以将整个备份压缩到存档中并处理所需的任何轮换,就很容易将其扩展为适当的备份。 该工具有一些缺点: 正如它在Github上的立场一样,由于缺少一些输入,原始文件无法编译。有好几个人制作了PR或fork来解决此问题,例如https://github.com/feldoh/guano,这是我的fork,在其中我也改进了文档。我现在还预编译了jar,并将二进制文件推送到https://bintray.com/feldoh/Guano/guano。 它仅转储数据,这对探索很有用,但会丢失元数据,例如mTime或数据版本。不可否认,还原可能应该算作是更新,因此我不能说它确实是一件坏事,但它并不是真正的时间点还原。 注意:我已经创建了自己的Zookeeper编辑器,因为我遇到了类似的问题,无法找到一种可以满足我需要的软件。根据您何时阅读本内容,https://github.com/feldoh/JZookeeperEdit可能还具有导出功能。第13/14期涵盖了此计划的功能。     
        有一个非常好的工具叫做
zk-shell
,它可以使用Zookeeper处理大量的事情。它有一个“ 1”命令,可以将整个Zookeeper树递归地复制到Zookeeper或本地JSON文件中或从中复制。 来源和文档:https://github.com/rgs1/zk_shell 在Centos 7上安装:
yum install python2-pip
pip install zk_shell
将Zookeeper树备份到本地JSON文件的示例:
zk-shell localhost:2181 --run-once \'mirror / json://!tmp!zookeeper-backup.json/\'
    

要回复问题请先登录注册