【问题标题】:Is there a way to use cassandra nodetool programatically?有没有办法以编程方式使用 cassandra nodetool?
【发布时间】:2016-03-04 02:09:25
【问题描述】:

例如,我如何以编程方式拍摄快照并恢复它们。如果您有任何解决方案或解决方法,请帮助我。

【问题讨论】:

标签: apache hadoop datastax-enterprise datastax-java-driver cassandra-2.1


【解决方案1】:

您可以将 cassandra 的源代码用作库(nodetool 实用程序是该源代码的一部分)。您可以使用名为 NodeProbeStatus 的类。

【讨论】:

  • 您能否通过一些示例详细说明如何做到这一点
  • 添加对 cassandra jar 的依赖后,以下是从集群中删除节点的方法: new NodeProbe("ip-address-of-an-endpoint-in-cluster").removeNode( "host-id-of-node-running-cassandra") 一旦你有了 NodeProbe 类的实例,浏览它的方法看看你能做什么。
【解决方案2】:

使用 JMX,我喜欢 jmxsh 做这种事情。您可以从 cron 中调用它。

如果您正在寻找更完整的解决方案,OpsCenter 会进行备份和还原(指向并单击)。查看 Mani 的post。我提到这一点是因为您在问题中有datastax-enterprise。如果您运行的是开源 cassandra,备份服务将被禁用。

这是我用来更改并发压缩器的一些示例 shell 脚本,您可以执行类似的操作。

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 

【讨论】:

  • 谢谢!您能否为此目的指导我使用任何此类“JMXSH”现有代码。知道为什么 Cassandra 驱动程序没有提供这样的功能(或者我错了)?
猜你喜欢
  • 2019-01-12
  • 2021-08-28
  • 2013-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-16
  • 2011-11-22
  • 2015-11-24
相关资源
最近更新 更多