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 ,一切都将被重新生成,你应该是好的。