1

Например, как я могу программно делать снимки и восстанавливать их. Пожалуйста, помогите мне, если у вас есть решение или обходное решение.Есть ли способ использовать cassandra nodetool программно?

+1

Возможный дубликат снимка [cassandra snapshot без nodetool, но только java api] (http://stackoverflow.com/questions/12403292/cassandra-snapshot-without-nodetool-but-by-java-api-only) –

+0

@ Rafael прямо сейчас, мой прецедент принимает или восстанавливает только снимки, но мне может понадобиться прогнуться другим командам nodetool в будущем. –

ответ

0

Используйте JMX, мне нравится jmxsh для такого рода вещей. Вы можете назвать это из cron.

Если вы ищете более полное решение, OpsCenter выполнит резервное копирование и восстановление (нажмите и нажмите). Проверьте Mani's post. Я упоминаю об этом, так как у вас есть datastax-enterprise в вопросе. Служба резервного копирования отключена, если вы используете cassandra с открытым исходным кодом.

Вот несколько примеров сценариев оболочки, которые я использовал для изменения параллельных компакторов, вы можете сделать что-то подобное.

wget https://jmxsh.googlecode.com/files/jmxsh-R5.jar 
wget https://jmxsh.googlecode.com/files/jmxsh 
echo jmx_set -m org.apache.cassandra.db:type=CompactionManager CoreCompactorThreads 4 > changeCoreCompactors.sh 
echo jmx_set -m org.apache.cassandra.db:type=CompactionManager MaximumCompactorThreads 4 > changeMaxCompactors.sh 
java -jar jmxsh-R5.jar -h localhost -p 7199 -q changeCoreCompactors.sh 
java -jar jmxsh-R5.jar -h localhost -p 7199 -q changeMaxCompactors.sh 
+2

Спасибо! Можете ли вы направить меня на любой такой «JMXSH» существующий код для этой цели. Любая идея, почему драйвер Cassandra не предоставил такую ​​функциональность (или я ошибаюсь)? –

2

Вы можете использовать исходный код cassandra как библиотеку (утилита nodetool является частью этого исходного кода). Существуют классы, называемые NodeProbe и Status, которые вы можете использовать.

+0

Можете ли вы предоставить некоторые подробности о том, как это происходит с каким-то примером? – manish

+0

Как только вы добавляете зависимость от jar cassandra, вот как вы можете удалить узел из своего кластера: новый NodeProbe («ip-address-of-the-end-end-end- in-cluster "). removeNode (" host-id-of-node-running-cassandra ") Как только у вас есть экземпляр класса NodeProbe, просмотрите его методы, чтобы увидеть, что вы можете сделать. – Apoorv

Смежные вопросы