Java-класс Zookeeper для автозапуска не найден

У меня есть такая конфигурация zookeeper:

autopurge.snapRetainCount=10
autopurge.purgeInterval=1
snapCount=3000000

И мой /opt/zookeeper-3.4.11/data каталог становится большим, никакого autopurge не происходит.

Я пытаюсь убрать этот беспорядок с помощью zkCleanup.sh, но ничего не получается.

sysadmin@clickhouse-node1:/opt/zookeeper-3.4.11/bin$ ls /opt/zookeeper-3.4.11/data/version-2/ | wc -l
18
sysadmin@clickhouse-node1:/opt/zookeeper-3.4.11/bin$ ./zkCleanup.sh -n 10  
sysadmin@clickhouse-node1:/opt/zookeeper-3.4.11/bin$ ls /opt/zookeeper-3.4.11/data/version-2/ | wc -l
18

sysadmin@clickhouse-node1:/opt/zookeeper-3.4.11$ ls data/version-2/
log.9028ed00e  log.902eafb66  log.903362dcb  log.90374bde5  log.903b5f685  log.903f8e16a  log.b000000a8  log.b004d4eac  log.b0083c3e1
log.902b9c065  log.9030ece30  log.903590e4a  log.90395a935  log.903d9b0f0  log.90421e5d6  log.b002462e2  log.b0068bba3  log.b00a38f08

Мой zkCleanup.sh https://pastebin.com/Q9XSpSfz

UPD: лог из нового скрипта очистки зоопарка:

sysadmin@clickhouse-node1:/opt/zookeeper-3.4.11/bin$ ./zoo_clean.sh -n 10 /opt/zookeeper-3.4.11/data /opt/zookeeper-3.4.11/logs /usr/lib/jvm/java-8-oracle/bin/java -Dzookeeper.log.dir=. -Dzookeeper.root.logger=INFO,CONSOLE -cp /opt/zookeeper-3.4.11/bin/../build/classes:/opt/zookeeper-3.4.11/bin/../build/lib/*.jar:/opt/zookeeper-3.4.11/bin/../lib/slf4j-log4j12-1.6.1.jar:/opt/zookeeper-3.4.11/bin/../lib/slf4j-api-1.6.1.jar:/opt/zookeeper-3.4.11/bin/../lib/netty-3.10.5.Final.jar:/opt/zookeeper-3.4.11/bin/../lib/log4j-1.2.16.jar:/opt/zookeeper-3.4.11/bin/../lib/jline-0.9.94.jar:/opt/zookeeper-3.4.11/bin/../lib/audience-annotations-0.5.0.jar:/opt/zookeeper-3.4.11/bin/../zookeeper-3.4.11.jar:/opt/zookeeper-3.4.11/bin/../src/java/lib/*.jar:/opt/zookeeper-3.4.11/bin/../conf: org.apache.zookeeper.server.PurgeTxnLog /opt/zookeeper-3.4.11/logs /opt/zookeeper-3.4.11/data -n 10 Больше ничего не происходит

Есть идеи, как это исправить?


person Nessero Karuzo    schedule 16.03.2018    source источник
comment
попробуйте jar -tvf zookeeper.jar |grep PurgeTxnLog. и каковы отношения между /opt/zookeeper-3.4.11/data и /opt/zoo/data.   -  person sel-fish    schedule 17.03.2018
comment
почему бы не использовать zkCleanup.sh вместо команды fill java самостоятельно. кажется, что вы не включили свои slf4japi и slf4j-log4j12 в свой путь к классам.   -  person sel-fish    schedule 18.03.2018
comment
zkCleanup.sh не работает, я не понимаю bash. Может в этом проблема. Но скрипт выполняется без проблем.   -  person Nessero Karuzo    schedule 19.03.2018
comment
попробуйте ./bin/zkCleanup.sh -n 10   -  person sel-fish    schedule 19.03.2018
comment
Вы можете обновить это в теле вопроса? и перечислите файлы в /opt/zookeeper-3.4.11/data/version-2/   -  person sel-fish    schedule 19.03.2018


Ответы (3)


Это ошибка в zkCleanup.sh в образе докера 3.4.11 https://github.com/apache/zookeeper/pull/475

Простое исправление - отредактировать zkCleanup.sh из

org.apache.zookeeper.server.PurgeTxnLog "$ ZOODATALOGDIR" "$ ZOODATADIR" $ *

to

org.apache.zookeeper.server.PurgeTxnLog "$ ZOODATADIR" "$ ZOODATALOGDIR" $ *

person Sergey Korobov    schedule 12.04.2018

dataDir и dataLogDir в вашем conf/zoo.cfg - относительные пути, могут помочь следующие инструкции:

cd /opt/zookeeper-3.4.11
./bin/zkCleanup.sh -n 10

тогда вы можете увидеть результат, например:

Removing file: Mar 15, 2018 1:57:16 PM  data/log/version-2/log.9028ed00e
Removing file: Mar 12, 2018 5:33:11 PM  data/log/version-2/log.902eafb66
person sel-fish    schedule 19.03.2018
comment
Сделайте это, ничего не происходит, возможно, проблема в сценарии оболочки zkCleanup.sh. Добавьте в тему. - person Nessero Karuzo; 20.03.2018

https://clickhouse.yandex/docs/en/operations/tips/#zookeeper Clickhouse требуется Zookeper 3.5+

person Slach    schedule 17.03.2018
comment
Zookeeper 3.4.11 поддерживает параметры autopurge.snapRetainCount и autopurge.purgeInterval. - person Nessero Karuzo; 17.03.2018