我必须在其他地区添加新的Cassandra Datacenter。现在问题是先前的Datacenter是2.2.9版本,我在新数据中心创建的新节点是2.2.11。
在nodetool上重建新数据中心的所有新节点都失败并显示错误
无法在密钥空间中找到足够的流媒体范围来源。
即使这个错误导致系统密钥空间,如system,system_traces,system_distributed)。
此系统密钥空间位于SimpleStrategy上。
为了搜索这个问题,我发现每个人都在谈论将策略改为NetworkTopology。
但是,如果我不想在所有数据中心保留副本,那么我为什么要更改拓扑(策略)。
在之前的Cassandra版本中,我从未见过这种限制。
要避免或忽略nodetool rebuild上的这个问题,人们会说要添加
-Dcassandra.consistent.rangemovement =假
但是要添加每个新节点是否需要?
对于rebuild命令的其他键空间会有什么影响。
答案 0 :(得分:3)
默认情况下,系统表会出现“SimpleStrategy”。使用SimpleStrategy的任何键空间仅适用于Single DataCenter Cassandra集群。
对于多DC群集,需要并建议使用NetworkTopology。建议将系统密钥空间(如system_auth和system_distributed)更改为NetworkTopology策略,复制因子大于1(理想值为3),并且还会复制到群集中涉及的所有DC。
应用程序密钥空间可以或可以复制到其他DC。但将其复制策略更改为NetworkTopology并仅复制到一个DC没有任何害处。
答案 1 :(得分:0)
我已将系统的密钥空间拓扑更改为网络拓扑,并在所有DC上使用复制因子2。
更改系统拓扑没有坏处。
在cassandra 22X版本的文档中没有提到它。但是在30x及更高版本的最新版本文档中,提到了更改系统键空间的拓扑。