Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
cassandra-已保存的群集名称测试群集!=配置名称_Cassandra - Fatal编程技术网

cassandra-已保存的群集名称测试群集!=配置名称

cassandra-已保存的群集名称测试群集!=配置名称,cassandra,Cassandra,当我遇到这个错误时,我应该如何bot一个新的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 (l

当我遇到这个错误时,我应该如何bot一个新的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表中的集群名称来重命名集群,而无需删除数据(但您必须对每个节点执行此操作)


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

我对Datastax4.7 enterprise edition也有同样的问题。我按照上述指示解决了这个问题:

将群集名称更改回“测试群集”

启动群集:

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 service dse start;sudo service datastax-agent start
停止群集:

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 service dse start;sudo service datastax-agent start
编辑文件:

$ sudo vi /etc/dse/cassandra/cassandra.yaml
cluster_name: 'Cassendra Cluster'
启动群集:

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 service dse start;sudo service datastax-agent start
检查安装日志:

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

上述带有
更新集群集\u name
的命令不适用于我。我发现工作需要遵循以下说明:


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

对于Cassandra 3.0.5,我厌倦了答案,但它缺少一个关键部分:

bash $ ./nodetool flush
应该是:

bash $ ./nodetool flush system

与Cassandra 3.7的一样,您应该用
/nodetool flush系统
替换
/nodetool flush
。否则它将无法工作。

如果
cassandra
未运行,则可以擦除数据文件夹

rm -rf /usr/lib/cassandra/data/*
这将清除具有错误群集名称的系统表\
当您在
cassandra.yaml中使用正确的集群名称重新启动
cassandra
时,一切都将重新生成,您应该很好

针对Bitnami认证的卡桑德拉-3.11.5

以下是对我有效的解决方案:

  • 停止卡桑德拉服务
  • 删除系统数据
  • 启动Cassandra服务

  • 这些目录是什么?目录在/var/lib/cassandra/commitlog/var/lib/cassandra/data中,所以…删除或刷新目录的内容?@Tampa del它们,但这也会删除所有数据。您基本上正在完全擦除集群。我认为
    bash$./nodetool flush
    应该是
    bash$./nodetool flush system
    。有关详细信息,请参见如果Cassandra由于声明的错误而无法启动,那么我们显然无法使用cqlsh方法。然后,我们需要删除系统密钥空间中的文件并重新启动服务。这帮助我重置了群集名称,以便我可以跟踪链接。删除所有数据确实可以解决问题,但我不确定这是否是最好的建议。我认为否决此答案是不公平的。在部署过程的早期,刷新数据可能比仅通过cqlsh更改集群而必须在其以前的名称上恢复集群要容易得多。