【发布时间】:2017-08-11 14:50:57
【问题描述】:
更新 - 短版:
前 3 个节点(机架 1-3)的 PropertyFileSnitchcassandra-topology.properties 通过指定默认值 default=DC2:r1 声明只有这些节点位于 DC1 中,其他节点位于 DC2 中。当通过添加节点 4 和 5 扩展集群时,这些节点的 PropertyFileSnitch 配置为将它们添加到 DC1 以及机架 4 和 5 中,但来自前 3 个节点的告密者保持不变,并且作为结果集群处于这种不一致的状态。
我的问题是这个集群是否可以重新平衡(固定)。如果我在修复 cassandra-topology.properties 后重新启动整个集群就足够了吗?
请告知我如何安全地重新平衡集群。
加长版:
我是 Cassandra 的新手,我开始使用已经构建的集群。
我在不同机架上的同一数据中心有 5 个节点,运行 Cassandra 版本 3.0.5,vnodes num_tokens: 256 和一个带有 replication = {'class': 'NetworkTopologyStrategy', 'DC1': '3'} AND durable_writes = true 的键空间。
从历史上看,只有 3 个节点,而集群又增加了 2 个节点。我有一个运行nodetool repair 的自动修复脚本,带有选项parallelism: parallel, primary range: false, incremental: true, job threads: 1。
插入大量数据后,问题开始出现。在节点 4 或 5 上运行修复脚本时,节点 2 会过载:CPU 使用率保持在 100%,MutationStage 队列增长,GC 暂停至少需要 1 秒,直到 Cassandra 进程最终死亡。修复结果通常为failed with error Stream failed (progress: 0%)。
在节点 1、2 或 3 上运行 nodetool status 命令时,我得到以下输出:
但是在节点 4 或 5 上运行 nodetool status 命令时,我得到以下输出:
经过进一步调查,集群扩大后,PropertyFileSnitchcassandra-topology.properties 似乎没有在节点 1、2 和 3(这也是该集群的种子)上更新。 p>
谢谢!
【问题讨论】:
标签: cassandra cassandra-cli nodetool