gpt4 book ai didi

apache-zookeeper - Zookeeper 自动清除功能不起作用

转载 作者:行者123 更新时间:2023-12-04 04:29:50 26 4
gpt4 key购买 nike

在开发阶段使用zookeeper大约6个月后,虽然运行良好,但其数据目录的大小增长到 6 GIG !而且还在增加。下面列出了一些系统规范:

zookeeper version: 3.4.6
number of clients: < 10
number of znodes: < 400
also ...
there are 90 log.* files in dataDir/version-2
there is no snapshot.* file in dataDir/version-2 !



通过谷歌搜索这个问题,我在 Advanced Configuration 中找到了自动清除选项 ZooKeeper Administrator's Guide的部分页。然后我使用以下配置(zoo.cfg)推出了zookeeper:

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 时也没有发生变化多次过期,即zookeeper数据目录的大小仍然是6G并且没有文件被删除。这是一个 ls -laht${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

此外,以下命令(如 Maintenance 部分所建议的)对数据目录中的文件没有影响。
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>

顺便说一下,我找到了 this question但不幸的是,该页面中没有解决方案。

问题:

1- snapshot.* 文件在哪里?
2- 如果 SASL 设置会阻碍自动清除? (我觉得不行)
3- 配置有问题吗?

编辑:似乎解决方案是围绕 snapCount 属性(property)。此属性的默认值是 100000,只需将其减少到一个非常小的数字,例如10、测试系统。

最佳答案

你可以用那个 zkCleanup.sh 源文件夹( ./bin 子文件夹)内的脚本。如果找不到,可以找here .这个脚本的用法:

zkCleanup.sh <snapshotDir> -n <count>
for example:
# ./zkCleanup.sh /tmp/zookeeper -n 6
<snapshotDir>是zookeeper快照文件的位置,就我而言,我的快照文件在文件夹 /tmp/zookeeper/version-2/
<count>是保留的日志和快照文件编号, <count>的值通常应大于 3。

更详细的可以引用这个文档: Ongoing Data Directory Cleanup .

这可以在 ZooKeeper 服务器机器上作为 cron 作业运行,以每天清理日志。就我而言,我每周清理一次:
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 添加此内容但请记住根据您的要求更改频率。

关于apache-zookeeper - Zookeeper 自动清除功能不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34390605/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com