【问题标题】:Cassandra bootstrap fails with "unable to fetch range"Cassandra 引导程序因“无法获取范围”而失败
【发布时间】:2015-09-02 22:50:29
【问题描述】:

我运行一个 4 节点 cassandra 1.2.6 集群。最近两个节点出现了一些问题,所以为了安全起见,我决定添加第五个节点。我已经加入了环,并且启动了引导过程,但是过了一段时间,出现了以下错误:

java.lang.RuntimeException: Unable to fetch range [(56713727820156410577229101238628035242,113427455640312821154458202477256070484], (113427455640312821154458202477256070484,1276058875953519237 98765477786913079296]] for keyspace xxxxxxxx from any hosts

引导程序永远不会结束,服务也会停止。如果重新启动,引导程序会再次开始,并循环往复。

到目前为止,所有其他节点都可以正常引导,并且重复该过程(清除目录并重新初始化)没有帮助。可能会有更多节点出现,所以我希望能够干净地引导,但我还没有找到任何关于这个特定错误的资源。

有什么提示或经验吗?提前致谢。

【问题讨论】:

  • 在启动节点和使用什么操作系统之间等待 2 分钟?
  • 我在两次启动之间等了几个小时,但没有帮助。操作系统是 Ubuntu Linux 12.04。更新:问题已自行解决,我注意到这次流式传输来自另一个节点,并且没有任何问题完成。不过,我想知道这里到底发生了什么,我应该期待以后出现问题..

标签: cassandra bootstrapping


【解决方案1】:

听起来您的环中有来自故障节点的“漏洞”。检查nodetool ring,任何标记为 Down 但实际上不再属于集群的节点都可以使用nodetool removetoken 删除(可能需要force 标志)。

【讨论】:

  • 您好 jbellis,感谢您的建议。在引导时,所有四个节点都报告为“up”。不应该使用一致性机制来填补漏洞(假设它们存在)?
  • 嗯。我实际上不确定该消息的含义。流在 2.0 (datastax.com/dev/blog/streaming-in-cassandra-2-0) 中被重写为更强大,因此您可能需要升级。我特别注意到这条消息不再出现在 2.0 源代码中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-12
  • 2017-06-27
  • 1970-01-01
  • 1970-01-01
  • 2018-02-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多