cassandra - 如何从失败的 Bootstrap 中恢复 Cassandra 节点

标签 cassandra cluster-computing bootstrapping

一个节点在引导新节点时关闭,并且引导失败。节点关闭,在其日志中留下以下消息:

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/

相关文章:

database - 将 Spark 与 Cassandra 结合使用的优势

java - 在java中访问父类中的子常量

user-interface - 具有集群支持的 Redis GUI 工具

redis - 如何测试redis集群

node.js 集群,将子级标准输出重定向到文件中断数据

cassandra - cassandra 中的行何时被覆盖

java - 如何使用 CQL 和 Java 创建物化 View ?

java - 引导 Play 应用程序

.net - 在 Bootstrapper 中配置 Automapper 违反了开闭原则?

operating-system - MASM 中的微型操作系统