cassandra – 保存的群集名称Test Cluster!=已configuration的名称

当我得到这个错误的时候,我该如何篡改一个新的Cassandra节点?

INFO [SSTableBatchOpen:1] 2014-02-25 01:51:17,132 SSTableReader.java (line 223) Opening /var/lib/cassandra/data/system/local/system-local-jb-5 (5725 bytes) ERROR [main] 2014-02-25 01:51:17,377 CassandraDaemon.java (line 237) Fatal exception during initialization org.apache.cassandra.exceptions.ConfigurationException: Saved cluster name Test Cluster != configured name thisisstupid at org.apache.cassandra.db.SystemKeyspace.checkHealth(SystemKeyspace.java:542) at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:233) at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:462) at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:552) 

cassandra.yaml文件中的集群名称是:

 cluster_name: 'thisisstupid' 

我该如何解决?

您可以通过在system.local表中更新它的名称来重命名群集而不删除数据(但是您必须为每个节点执行此操作)

 cqlsh> UPDATE system.local SET cluster_name = 'test' where key='local'; # flush the sstables to persist the update. bash $ ./nodetool flush 

最后,您需要将群集重命名为cassandra.yaml中的新名称(再次在每个节点上

我有与Datastax4.7企业版相同的问题。 我用上面的说明解决了它:

将群集名称更改回“testing群集”

启动群集:

 cqlsh> UPDATE system.local SET cluster_name = 'Cassendra Cluster' where key='local'; cqlsh> exit; $ nodetool flush system 

停止群集:

 $sudo service dse stop;sudo service datastax-agent stop 

编辑文件:

 $ sudo vi /etc/dse/cassandra/cassandra.yaml cluster_name: 'Cassendra Cluster' 

启动群集:

 $sudo service dse start;sudo service datastax-agent start 

检查安装日志:

  $ cat /var/log/cassandra/output.log 

对于Cassandra 3.0.5,我厌倦了Lyuben Todorov的回答,但是却错过了一个关键部分:

 bash $ ./nodetool flush 

应该:

 bash $ ./nodetool flush system 

如在这里

上述命令与UPDATE SET cluster_name不适用于我。 我发现工作是遵循DataStax 初始化多节点集群文档中的说明:

 sudo service cassandra stop sudo rm -rf /var/lib/cassandra/data/system/* sudo vi /etc/cassandra/cassandra.yaml, setup the proper parameters sudo service cassandra start nodetool status 

对于一些好的群集节点设置,我发现这个博客post非常有用。

对于Cassandra 3.7,您应该使用./nodetool flush systemreplace./nodetool flush system 。 否则,它将无法正常工作。

如果cassandra没有运行,您可以擦除数据文件夹。

 rm -rf /usr/lib/cassandra/data/* 

这将清除具有错误群集名称的系统表。 \当你的cassandra中正确的集群名称重新启动cassandra ,一切都将被重新生成,你应该是好的。