Я использую встроенную Кассандру. Когда я выключаю и перезапускаю данные службы Cassandra, теряется. Я думаю, что приличные данные не были правильно сброшены на диск. Поэтому я попытался использовать nodetool для ручной очистки данных и проверки доступности данных. Но nodetool, похоже, не работает должным образом для встроенного сервиса Cassandra. Я получаю следующую ошибку:
c:\vijay\cassandra\bin>nodetool -host 192.168.2.86 -p 7199 drain
Starting NodeTool
Failed to connect to '192.168.2.86:7199': Connection refused: connect
Я попытался установить свойства jmx, но я получаю ошибку. Я добавил следующие строки в свой код:
System.setProperty("com.sun.management.jmxremote", "true");
System.setProperty("com.sun.management.jmxremote.port", "7197");
System.setProperty("com.sun.management.jmxremote.authenticate", "false");
System.setProperty("com.sun.management.jmxremote.ssl", "false");
System.setProperty("java.rmi.server.hostname", "my ip");
Итак, есть ли способ вручную сбросить данные в Cassandra без использования nodetool?
Изменить 1:
После нескольких часов попыток я теперь могу запустить nodetool (вместо добавления jmx-конфигураций в код, который я добавил в конфигурации отладки Eclipse, и он сработал). Теперь я выполнил команду слива, и данные были правильно сброшены на диск. Итак, теперь мой вопрос: почему данные не правильно очищены? Каждый раз, когда я перезапускаю службу Cassandra, последние изменения ушли.