简介+问题:

我有一个使用Cassandra 1.2.4集群的Python应用程序。每周一次,我需要在Cassandra节点上运行计划的修复(nodetool修复),在此期间,我想减少正在修复的节点上的负载,但是一旦修复完成,我想立即开始正常使用该节点。我正在使用Python的CQL库来访问集群。

问题:

是否有一种简单的方法可以从Python程序中知道何时修复Cassandra节点?如果没有,是否有一种方法可以提前知道修复已经开始,何时知道修复完成?

提前致谢!

最佳答案

现在,动态侦听(默认情况下已启用)应该能够间接绕过负载很大的一个或多个节点:
http://www.datastax.com/dev/blog/dynamic-snitching-in-cassandra-past-present-and-future

您可以做的另一件事是查看参与修复的所有节点上的nodetool netstats和compactionstats,以查看是否存在与修复相关的流或压缩(验证类型压缩)。显然,使用Python来运行nodetool或使用JMX等效项很棘手,但是只是想给您一些想法。

同样在1.1.9 / 1.2.1中,有一张票证允许通过jmx发起的维修呼叫监视维修进度。有关其他详细信息,请参见:https://issues.apache.org/jira/browse/CASSANDRA-4767

Cassandra 2.0+正在完成工作,以使修复和流传输更具弹性并能够被监视。见https://issues.apache.org/jira/browse/CASSANDRA-5286

关于python - 当修复或完成修复Cassandra节点时,如何使用Python以编程方式进行检测,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17414822/

10-14 14:03