无法启动 Cassandra - Snitch 的数据中心与以前不同
Posted
技术标签:
【中文标题】无法启动 Cassandra - Snitch 的数据中心与以前不同【英文标题】:Cannot start Cassandra - Snitch's Datacenter Differs from Previous 【发布时间】:2016-12-22 00:54:28 【问题描述】:我正在尝试在本地启动 DSE 5.0.1 Cassandra(单节点)。
出现以下错误:
CassandraDaemon.java:698 - 如果 snitch 的数据中心无法启动节点 (Cassandra) 与之前的数据中心 (Graph) 不同。请修复 snitch 配置、停用和重新启动此节点或使用 标志 -Dcassandra.ignore_dc=true
【问题讨论】:
【参考方案1】:如果您使用 GossipingPropertyFileSnitch,请使用选项启动 Cassandra
-Dcassandra.ignore_dc=true
如果启动成功,执行:
nodetool repair
nodetool cleanup
之后,Cassandra 应该可以在没有忽略选项的情况下正常启动。
【讨论】:
请不要对多个问题发布相同的答案。发布一个好的答案,然后投票/标记以关闭其他问题作为重复问题。如果问题不是重复的,调整您对该问题的回答。 不起作用。 cassandra 服务自动停止。【参考方案2】:当节点启动并看到它有信息表明它以前是不同数据中心的一部分时,就会发生这种情况。如果数据中心在上次启动时不同,然后被更改,则会发生这种情况。
在您的情况下,您最有可能使用DseSimpleSnitch
,它根据该节点的工作负载命名数据中心。以前,该节点是在启用 Graph 的情况下启动的,这会将名称变为 Graph
。现在尝试在未启用 Graph 的情况下启动它会导致它命名 Datacenter Cassandra
,这是默认设置。
使用-Dcassandra.ignore_dc=true
标志将允许您继续,但更好的解决方案是切换到GossipingPropertyFileSnitch
并为此机器指定一个专用的数据中心名称。
另一个选项(如果您只是在测试)是清除数据目录,因为这将清除之前为节点标记数据中心的信息。这很可能是sudo rm -R /var/lib/cassandra/
【讨论】:
擦除数据目录为我解决了这个问题。谢谢@RussS以上是关于无法启动 Cassandra - Snitch 的数据中心与以前不同的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 bin/cassandra 启动 Cassandra db
PHP 警告:PHP 启动:无法加载动态库“cassandra.so”(已尝试:/usr/lib/php/20170718/cassandra