У меня есть ансамбль zookeeper из 3 узлов, работающий с того места, где у меня возникли проблемы с одним узлом, показывающим поврежденную базу данных. Теперь я обнаружил в документации, что его нужно регулярно очищать с помощью cron, выполняющего эту команду:
java -cp zookeeper.jar: log4j.jar: conf org.apache.zookeeper.server.PurgeTxnLog / var / lib / zookeeper / / var / lib / zookeeper / version-2 / -n 3
К сожалению, я получаю эту ошибку:
Исключение в потоке «main» java.lang.NoClassDefFoundError: org / slf4j / LoggerFactory в org.apache.zookeeper.server.PurgeTxnLog. (PurgeTxnLog.java:45) Вызвано: java.lang.ClassNotFoundException4a. java.net.URLClassLoader.findClass (URLClassLoader.java:381) в java.lang.ClassLoader.loadClass (ClassLoader.java:424) в sun.misc.Launcher $ AppClassLoader.loadClass (Launcher.java:331) в java.lang .ClassLoader.loadClass (ClassLoader.java:357) ... еще 1
Что вызывает это и как я могу предотвратить повторное повреждение базы данных zookeeper из-за слишком большого количества записей в журнале?
jar-файлы slf4j отсутствуют в пути к классам; вы можете добавить их вручную, но лучше использовать zkCleanup.sh
(поставляется с zookeeper) вместо этого.