如果分片的数据中心与之前的数据中心不同,就无法启动节点。

9
我正在尝试在本地启动DSE 5.0.1 Cassandra(单节点)。
我遇到了以下错误:
CassandraDaemon.java:698 - 如果snitch的数据中心(Cassandra)与先前的数据中心(Graph)不同,则无法启动节点。请修复snitch配置,将此节点退役并重新引导,或使用标志-Dcassandra.ignore_dc=true。
3个回答

12

如果您正在使用GossipingPropertyFileSnitch,请使用该选项启动Cassandra

-Dcassandra.ignore_dc=true
如果成功启动,执行以下操作:
nodetool repair
nodetool cleanup

随后,Cassandra应该能够正常启动,无需使用ignore选项。


1
请勿在多个问题中发布相同的答案。发表一个好的答案,然后投票/标记关闭其他重复的问题。如果问题不是重复的,请根据问题量身定制您的答案。 - Sᴀᴍ Onᴇᴌᴀ
1
无法工作。Cassandra服务会自动停止。 - Rafee

8
当节点启动并发现它有信息表明它以前是属于另一个数据中心时,就会出现此问题。如果在先前的引导过程中数据中心不同,然后更改了数据中心,则会出现这种情况。
在您的情况下,您很可能使用的是 DseSimpleSnitch,该 Snitch 根据该节点的工作负载命名数据中心。以前启动节点时启用了 Graph,这将名称更改为 Graph。现在尝试在未启用 Graph 的情况下启动它会导致它将数据中心命名为默认值 Cassandra。
使用 -Dcassandra.ignore_dc=true 标志将允许您继续进行,但更好的解决方案是切换到 GossipingPropertyFileSnitch,并为此机器提供专用数据中心名称。
另一个选择(如果您只是在测试)是清除数据目录,因为这将清除先前标记节点数据中心的信息。这很可能是 sudo rm -R /var/lib/cassandra/。

1
清空数据目录对我来说解决了这个问题。谢谢@RussS - Homer6

0

当您在文件/etc/dse/cassandra/cassandra-rackdc.properties中更改数据中心名称时,将会出现此问题。

要解决此问题,请按照以下步骤进行操作:

清空以下目录(注意:如果有数据,请先使用cp命令将文件复制到备份文件夹中进行备份):
cd /var/lib/cassandra/commitlog

sudo rm -rf *

cd /var/lib/cassandra/data

sudo rm -rf *

现在,使用以下命令启动DSE服务:
service dse start

使用以下命令检查节点状态:
nodetool -h ::FFFF:127.0.0.1 status 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接