首页 > 解决方案 > Cassandra:更改 snitch 属性然后启动 Cassandra 节点会出错

问题描述

我试图学习 Cassandra。尝试按照以下步骤操作时,出现以下错误(如第 4 点所述)。

1) 我从 Datastax 下载了 Cassandra,并制作了另一个相同的副本,并将两个文件夹命名为 node1 和 node2。

2) 将两个节点的 Cassandra.yaml 中的 endpoint_snitch 更改为 GossipingPropertyFileSnitch

3)在/home/ubuntu/node1/resources/cassandra/conf/cassandra-rackdc.properties

将 Node1 更改为:dc=west-side rack=hakuna-matata

将 Node2 更改为:dc=east-side rack=hakuna-matata

4)启动节点2。得到如下错误:

“如果 snitch 的数据中心(东侧)与之前的数据中心(Cassandra)不同,则无法启动节点。请修复 snitch 配置,停用并重新启动该节点或使用标志 -Dcassandra.ignore_dc=true”

尝试解决的步骤:

1)停止节点并删除 /var/lib/cassandra/data 文件夹 - 它没有工作

2) 恢复所有属性更改 --> 它正在工作。

3) 尝试无法启动 Cassandra - Snitch's Datacenter Differs from Previous中提到的步骤。--> 没用

请告诉我,为什么更改 snitch 属性会给出错误(如上所述)

标签: cassandra

解决方案


根据您的描述,您似乎已经按原样启动了节点,因为Cassandra数据中心名称是在您使用DseSimpleSnitch.

要解决此问题,您需要:

  1. 确保两个实例都指向不同的数据目录,具有不同的提交日志目录、提示等。最好指向 2 个单独的清除目录。
  2. 如果您使用 DSE 6 进行实验,在同一节点上拥有 2 个实例将需要额外的调整,最好在一开始就避免。

如果您想拥有多个 Cassandra/DSE 实例进行实验,使用 Docker 可能会更容易,如下所示:https ://github.com/datastax/docker-images (参见示例文件夹)。另一种可能性是使用DataStax Desktop,它可以更轻松地提供基于 Docker 的实例——您可以使用不同的版本等。


推荐阅读