2015-07-29 25 views
7

Zookeeper szybko wyszukuje wewnętrzne pliki binarne w całym środowisku produkcyjnym. Według: http://zookeeper.apache.org/doc/r3.3.3/zookeeperAdmin.html i http://dougchang333.blogspot.com/2013/02/zookeeper-cleaning-logs-snapshots.html jest to oczekiwane zachowanie i trzeba zadzwonić org.apache.zookeeper.server.PurgeTxnLog regularnie obracać jego rufę.Jak wyczyścić dzienniki zookeeper za pomocą polecenia PurgeTxnLog?

Więc:

% ls -l1rt /tmp/zookeeper/version-2/ 
total 314432 
-rw-r--r-- 1 root root 67108880 Jun 26 18:00 log.1 
-rw-r--r-- 1 root root 947092 Jun 26 18:00 snapshot.e99b 
-rw-r--r-- 1 root root 67108880 Jun 27 05:00 log.e99d 
-rw-r--r-- 1 root root 1620918 Jun 27 05:00 snapshot.1e266 
... many more 

% sudo java -cp zookeeper-3.4.6.jar::lib/jline-0.9.94.jar:lib/log4j-1.2.16.jar:lib/netty-3.7.0.Final.jar:lib/slf4j-api-1.6.1.jar:lib/slf4j-log4j12-1.6.1.jar:conf \ 
    org.apache.zookeeper.server.PurgeTxnLog \ 
    /tmp/zookeeper/version-2 /tmp/zookeeper/version-2 -n 3 

ale otrzymuję:

% ls -l1rt /tmp/zookeeper/version-2/ 
... all the existing logs plus a new directory 
/tmp/zookeeper/version-2/version-2 

Czy robię coś źle?

zookeeper-3.4.6/

+0

Chciałbym to zrobić +2, bo mnie dzisiaj rozbawiło! Dziękuję za to. –

+0

Twój katalog danych prawdopodobnie to/tmp/zookeeper not/tmp/zookeeper/version-2 (wersja-2 to wewnętrzna sprawa zk) ... Myślę, że to nie działa dla mnie albo – Claudio

+0

Może - wszystko co wiem to ten folder wypełnił system plików, co jest nieuzasadnione. – user48956

Odpowiedz

10

ZooKeeper ma teraz funkcję Autopotge od wersji 3.4.0. Spójrz na https://zookeeper.apache.org/doc/trunk/zookeeperAdmin.html

Mówi można użyć autopurge.snapRetainCount i autopurge.purgeInterval


autopurge.snapRetainCount

nowego w 3.4.0: Po włączeniu funkcji Heca auto czystka zachowuje AutoPurge .snapRetainUzyskaj najnowsze migawki i odpowiadające im dzienniki transakcji odpowiednio w dataDir i dataLogDir i usuń resztę. Domyślnie do 3. Minimalna wartość wynosi 3.


autopurge.purgeInterval

nowego w 3.4.0: Przedział czasu w godzinach, dla których zadaniem czystka musi być rozsierdzony. Ustaw na dodatnią liczbę całkowitą (1 i powyżej), aby włączyć automatyczne czyszczenie. Domyślnie jest to 0.

4

Ponieważ nie słyszę poprawkę poprzez Heca, to było łatwe obejście:

COUNT=6 
DATADIR=/tmp/zookeeper/version-2/ 
ls -1drt ${DATADIR}/* | head --lines=-${COUNT} | xargs sudo rm -f 

należy uruchamiać raz dziennie z crona lub do Jenkins zapobiec eksplozji zookeepera.