一个节点在引导新节点时关闭,并且引导失败。节点关闭,在其日志中留下以下消息:
INFO [main] 2015-02-07 06:03:32,761 StorageService.java:1025 - JOINING: Starting to bootstrap... ERROR [main] 2015-02-07 06:03:32,799 CassandraDaemon.java:465 - Exception encountered during startup java.lang.RuntimeException: A node required to move the data consistently is down (/10.0.3.56). If you wish to move the data from a potentially inconsistent replica, restart the node with -Dcassandra.consistent.rangemovement=false
如何恢复这种情况?一旦故障节点重新联机,我可以重新启动 Bootstrap 吗?或者我是否需要还原部分 Bootstrap 并以某种方式重试?
我已经找到了最初的原因。新节点能够连接到 10.0.3.56 处的节点,但 10.0.3.56 无法打开返回到新节点的连接。 10.0.3.56 包含一些需要移动到新节点的数据的唯一副本(复制因子 == 1),但它发送数据的尝试被阻止。
最佳答案
由于这涉及数据移动,而不仅仅是复制,并且基于代码中抛出异常的位置,我假设您正在尝试替换死节点,如下所述:http://www.datastax.com/documentation/cassandra/2.0/cassandra/operations/ops_replace_node_t.html
从表面上看,该节点没有加入环。如果节点已经加入,您当然可以通过运行 nodetool status
来仔细检查。
如果没有,那么您可以简单地从数据、commitlog 和 saved_caches 中删除所有内容,然后重新启动该过程。那个 10.0.2.56 节点出了什么问题?
如果此节点已加入环,那么在启动节点 10.0.2.56 后重新启动它应该仍然是安全的。
关于cassandra - 如何从失败的 Bootstrap 中恢复 Cassandra 节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28376437/