在开发阶段使用动物园管理员大约6个月后,虽然它工作得很好,但是它的数据目录的大小已经增长到了6g!而且它还在增加。以下列出了一些系统规范:
动物园管理员版本: 3.4.6 客户数量:< 10 节点数:< 400 还有..。 在dataDir/version-2中有90个日志.*文件 没有快照。* dataDir/version-2中的文件!
在谷歌搜索这个问题时,我在高级配置页面的ZooKeeper Administrator's Guide部分找到了自动清除选项。然后,我使用以下结合体(zoo.cfg)将动物园管理员滚了出来:
tickTime=2000 dataDir=/home/faghani/software/zookeeper/zkdata clientPort=2181 authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider requireClientAuthScheme=sasl autopurge.snapRetainCount=3 autopurge.purgeInterval=1
但即使purgeInterval多次过期,也没有发生变化,即动物园管理员数据目录的大小仍为6G,没有文件被删除。这里是ls -laht on ${dataDir}/version-2。这里有一个奇怪的点,Nautilus说数据目录的大小是6G,但是ls -laht说只有3.4G!
faghani@node255:~/software/zookeeper/zkdata/version-2$ ls -laht
total 3.4G
-rw-rw-r-- 1 faghani faghani 65M Dec 20 10:09 log.1061d
drwx------ 2 faghani faghani 4.0K Dec 20 10:09 .
-rw-rw-r-- 1 faghani faghani 65M Dec 19 17:28 log.105f2
-rw-rw-r-- 1 faghani faghani 65M Dec 15 18:37 log.105c1
-rw-rw-r-- 1 faghani faghani 65M Dec 14 16:17 log.105bc
-rw-rw-r-- 1 faghani faghani 65M Dec 9 18:08 log.10576
drwx------ 3 faghani faghani 4.0K Dec 9 16:57 ..
-rw-rw-r-- 1 faghani faghani 65M Dec 9 16:56 log.10565
-rw-rw-r-- 1 faghani faghani 65M Dec 8 18:31 log.1048c
and many more until ...
-rw------- 1 faghani faghani 65M Sep 2 16:41 log.1d03 另外,以下命令(如维护部分中所建议的)对数据目录中的文件没有任何影响。
java -cp zookeeper.jar:lib/slf4j-api-1.7.5.jar:lib/slf4j-log4j12-1.7.5.jar:lib/log4j-1.2.16.jar:conf org.apache.zookeeper.server.PurgeTxnLog <dataDir> <snapDir> -n <count>顺便说一句,我找到了这个问题,但不幸的是,该页面中没有解决方案。
问题:
1-快照在哪里。*文件?
2-如果SASL设置可以阻碍自动清除?(我想没有)
配置有问题吗?
编辑:似乎是围绕snapCount属性的解决方案。此属性的默认值为100000,只需将其降到非常小的数目,例如10,然后测试系统。
发布于 2018-01-06 10:14:52
您可以使用zkCleanup.sh脚本,它位于源文件夹(./bin子文件夹)内。如果你找不到它,你可以找到它这里。此脚本的用法:
zkCleanup.sh <snapshotDir> -n <count>
for example:
# ./zkCleanup.sh /tmp/zookeeper -n 6 <snapshotDir>是动物园管理员快照文件的位置,在我的例子中,我的快照文件位于/tmp/zookeeper/version-2/文件夹中。
<count>是保留的日志和快照文件号,<count>的值通常应该大于3。
有关更多细节,您可以参考以下文档:正在进行的数据目录清理。
这可以作为cron作业在ZooKeeper服务器机器上运行,以便每天清理日志。就我而言,我每周打扫一次:
0 7 * * 0 ( cd /root/otter/zookeeper/zookeeper-3.4.10/bin && ./zkCleanup.sh /tmp/zookeeper -n 5 ) >> /tmp/zookeeper/cron.log 2>&1您可以通过crontab -e添加这一点,但请记住根据您的要求更改频率。
发布于 2016-11-29 12:38:34
如果您的问题与使用Solr运行ZK直接相关,那么阅读Solr的邮件列表中的以下电子邮件链将是有用的:Solr中ZK事务日志的自动清除。
简而言之,Solr嵌入了通过自己的SolrZKServer运行的ZK,这既不考虑autopurge.snapRetainCount=3也不考虑autopurge.purgeInterval=1。
发布于 2022-08-05 07:38:53
一些有用的信息,运行在命令下对我的动物园管理员版本: 3.5.5。参考文献https://zookeeper.apache.org/doc/r3.6.1/zookeeperTools.html#zkCleanup
zkCleanup.sh -n 5zKCleanup脚本存在于动物园管理员bin文件夹中。/apache-动物园管理员-3.5.5-bin/bin
自动刷新变量信息可以在:advancedConfiguration上找到
https://stackoverflow.com/questions/34390605
复制相似问题