4

有 4 个节点集群和 2 个种子。使用cassandra 1.2.5. 考虑制作 2 个集群,每个集群有 2 个节点和 1 个种子。

停用,更改 cassandra.yaml 文件中的种子并删除数据和提交日志目录并重新启动,一个节点启动正常,第二个节点显示两个集群。

INFO 10:28:37,241 JOINING: sleeping 30000 ms for pending range setup
INFO 10:29:07,242 JOINING: Starting to bootstrap...
ERROR 10:29:07,324 Exception encountered during startup

java.lang.IllegalStateException:无法为流范围找到足够的源 (5253604194908817102,5256320442405919104]

4

2 回答 2

5

如果您的所有数据都已清除并且您正在设置新节点,您应该会收到以下异常:

java.lang.IllegalStateException:无法为流范围找到足够的源 (5253604194908817102,5256320442405919104]

例外情况意味着您没有足够的数据在所需范围内发送,例如,如果您在 4 节点集群中的某个键空间的复制因子为 1,并且您删除了 2 个节点,则您将无法将某些范围流式传输为它们与退役的节点一起丢失。

据我了解,您正在尝试这样做:

Original Cluster:
Cluster A (x2 seeds) [node1, node2, node3, node4]

New Cluster(s):
Cluster A (x1 seed) [node1, node2] <-- no data
Cluster B (x1 seed) [node1, node2] <-- no data

这意味着您从原始集群中删除了 1 个种子,并停用了 2 个节点。然后将退役的 2 个节点添加到它们自己的集群(集群 B)中使用。对于所有 4 个节点,您删除了数据目录/提交日志。

如果你这样做了,你不应该传输任何数据。这意味着您可能没有删除所有数据目录。我的建议是使用全新安装的 C* 并cassandra.yaml为 2 个集群的新基础架构进行配置,每个集群有 1 个种子节点。

于 2013-07-31T11:49:11.220 回答
0

转到/var/lib/cassandra/data/system目录并删除除%schema%. 利用

rm -rf batchlog compaction_history compactions_in_progress hints IndexInfo local NodeIdInfo paxos peer_events peers range_xfers sstable_activity

并重新启动您的 cassandra 节点。

于 2014-12-25T09:44:51.500 回答