【问题标题】:Cassandra NetworkTopologyStrategy replicationCassandra 网络拓扑策略复制
【发布时间】:2013-03-18 14:36:27
【问题描述】:

我在 Amazon EC2 的两台 Linux 机器上安装并启动了 Cassandra。我还将 cassandra.yaml 设置为使用属性文件 snitch 并将 cassandra-topology.properties 文件配置如下:

  <external IP 1>=AWS1:R1
  <external IP 2>=AWS2:R1

然后创建如下键空间:

 create keyspace myks with strategy_options = [{AWS1:1,AWS2:1}]  and placement_strategy='NetworkTopologyStrategy'; 

然后我创建了一个列族并尝试插入一行...但是,当我尝试插入时,我从 CLI 得到一个空值。我错过了配置中的某些内容吗?

我怎样才能知道发生了什么?

另外——Cassandra 是否只在启动时读取 cassandra-topology?

谢谢

【问题讨论】:

    标签: cassandra


    【解决方案1】:

    看起来键空间创建没有正确完成。这是一个简单的事实,每当您在填充时收到 UnavailableException() 时,理所当然地认为创建键空间存在问题。在您的情况下,您没有提到所需的placement_strategy 的完整类路径

    CREATE KEYSPACE myks WITH placement_strategy = 'org.apache.cassandra.locator.NetworkTopologyStrategy'
    AND strategy_options=[{AWS1:1,AWS2:1}];
    

    是的,Cassandra 仅在创建键空间(启动)时读取拓扑

    【讨论】:

    • 您不需要完整的类路径,Cassandra 会自动添加它。此外,cassandra-topology.properties 每 60 秒重新加载一次,因此您可以在实时集群上进行更改。您需要在每个主机上创建该文件,否则您也可能会遇到 UnavailableExceptions。
    • 谢谢两位——Cassandra 中是否有工具或命令可以告诉我当前加载的拓扑设置?我尝试描述集群,但没有看到该信息。谢谢。
    • 如果您启动 cassandra-cli 然后use myks; 然后describe; 它应该在输出顶部附近为您提供复制策略和选项;
    猜你喜欢
    • 2012-03-01
    • 1970-01-01
    • 2014-10-14
    • 2011-03-31
    • 2011-05-08
    • 2018-06-15
    • 2012-07-13
    • 1970-01-01
    • 2017-03-24
    相关资源
    最近更新 更多