2

简介+问题:

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

问题:

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

提前致谢!

4

1 回答 1

2

现在,动态告密者(默认启用)应该能够间接地绕过一个或多个负载很大的节点: http ://www.datastax.com/dev/blog/dynamic-snitching-in -cassandra-过去-现在-未来

您可以做的其他事情是查看参与修复的所有节点上的 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

于 2013-07-02T12:41:30.907 回答