我在ubuntu上尝试使用datastax enterprise 4.8.4。按照说明安装即可。我可以使用命令sudo service dse start
启动cassandra节点。然后我想尝试重新启动作为同一台机器上的solr节点。因此,我修改了/etc/default/dse
并设置了SOLR_ENABLED=1
。现在我试图再次启动cassandra,它失败了。
@ubuntu:~$ sudo service dse start
* Starting DSE daemon dse
DSE daemon starting with Solr enabled (edit /etc/default/dse to disable)
[ OK ]
@ubuntu:~$ sudo service dse status
* dse is running
@ubuntu:~$ sudo service dse status
* dse is not running
我检查了/var/log/cassandra/system.log
。这是错误消息:
ERROR [main] 2016-01-28 16:44:02,767 CassandraDaemon.java:294 - Fatal exception during initialization
org.apache.cassandra.exceptions.ConfigurationException: Cannot start
node if snitch's data center (Solr) differs from previous data center
(Cassandra). Please fix the snitch configuration, decommission and
rebootstrap this node or use the flag -Dcassandra.ignore_dc=true.
问题是我该如何解决?或者我在哪里添加-Dcassandra.ignore_dc=true
?
答案 0 :(得分:10)
从2.1.13开始,您不能更改现有节点的数据中心。这是为了保护用户免于在生产中出错,因为更改实时系统中的数据中心(DC)名称将导致停机。
DSE简单snitch根据工作负载类型将节点分配给逻辑数据中心。 I.E. solr节点将被添加到solr DC,Cassandra节点将被添加到Cassandra数据中心。如果使用DSE简单snitch更改工作负载类型,则更改默认情况下不允许的DC名称。
如果这是一个测试环境并且您知道自己在做什么(当DC中的所有节点都更改为新DC时,您愿意承担breif停机时间),则可以提交following jvm flag in your cassandra-env.sh < / p>
-Dcassandra.ignore_rack = true和/或
-Dcassandra.ignore_dc =真。
**确保DC /名称更改后的拓扑结构仍然相同,否则复制可能会搞乱,最终会出现大量的流+ CPU利用率+ io +过时读取**
答案 1 :(得分:0)
以下是您可以采取的解决问题的步骤 -
错误: - CassandraDaemon.java:709 - 如果snitch的数据中心(Cassandra)与之前的数据中心(SearchGraphAnalytics)不同,则无法启动节点。
解决方案: -
将 Cassandra.yaml 文件中的GossipingPropertyFileSnitch
的网络拓扑更改为SimpleSnitch
,该文件位于 / usr / share / dse / resource / cassandra / conf (如果安装为无服务)
如果不存在,则创建包含数据中心和机架信息的属性文件。
路径: / usr / share / dse / resource / cassandra / conf
filename: cassandra-rackdc.properties
并添加以下条目 -
--indicate the rack and dc for this node dc=SearchGraphAnalytics // the previous name of your DC before upgrading rack=RAC1
如果Gremlin服务器错误仍然存在,请使用以下参数运行图表 -
当从tarball或DataStax安装程序使用No Services选项安装DataStax Enterprise时,可能会出现此错误。
使用以下参数启动dse: -
/usr/share/dse$ bin/cassandra -g -s -k