【问题标题】:Change Cassandra datacenter name更改 Cassandra 数据中心名称
【发布时间】:2016-09-11 06:42:27
【问题描述】:

是否可以更改 Cassandra 集群中的数据中心名称? 如果是这样,我该如何做到这一点?我有一个使用默认 DC 名称“Cassandra”构建的开发集群。我想更改此设置,因为我们将设置和测试 DC 之间的复制。

【问题讨论】:

    标签: cassandra


    【解决方案1】:

    您可以将snitch更改为GossipingFilePropertySnitch并在cassandra-rackdc.properties文件中指定dc名称和机架名称,完成后您需要重新启动节点,在这种情况下您将收到如下错误:

    Error: Cannot start node if snitch's data center (<new-datacentername>) differs from previous data center (<old-datacenter-name>). 
    Please fix the snitch configuration, decommission and rebootstrap this node or use the flag -Dcassandra.ignore_dc=true.
    

    为了避免这种情况,需要在cassandra-env.sh 文件中添加以下行并重新启动节点。

    JVM_OPTS=\"$JVM_OPTS -Dcassandra.ignore_rack=true -Dcassandra.ignore_dc=true\"'
    

    请记住,在这种情况下,如果在生产环境中执行此操作,您的集群将需要停机时间来重新启动您的数据中心。

    【讨论】:

    • 有没有办法在不启用 ignore_rack 或 ignore_dc 选项的情况下更改数据中心名称?启用这些选项是否会对 Cassandra 集群产生任何额外的负面影响?
    • 允许早期更改数据中心/机架,但自 2.1+ cassandra 版本以来已禁用。这本质上是因为如果更改了 snitch 配置,它可能会根据令牌值和 snitch 设置存在陈旧数据,并且存在节点向客户端报告无效/丢失数据的风险,因此会出现错误消息。正如您所说,它是关于开发集群的,这应该不是问题,但您可能需要小心一点。
    猜你喜欢
    • 1970-01-01
    • 2013-10-29
    • 1970-01-01
    • 2018-12-27
    • 2011-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-17
    相关资源
    最近更新 更多