【问题标题】:How to get the replication factor of C* cluster?如何获取 C* 集群的复制因子?
【发布时间】:2016-04-23 21:55:46
【问题描述】:

我在 cassandra.yaml 中找不到它,也许 nodetool 可以获取我集群的配置复制因子?

复制因子的默认值是多少?

【问题讨论】:

    标签: cassandra nodetool


    【解决方案1】:

    集群没有复制因子,但是您的 keyspaces does

    如果您想查看给定键空间的复制因子,只需执行SELECT * FROM system_schema.keyspaces;,它将打印您需要的所有复制信息。

    【讨论】:

    • @will- 谢谢,它成功了。你能说出复制因子的默认值是多少吗?
    • 此设置没有默认值。创建密钥空间时,您必须指定复制因子。
    • 在 Cassandra 2.1 中,数据位于不同的架构/表中:select * from system.schema_keyspaces;
    【解决方案2】:

    考虑使用DESCRIBE SCHEMA - 使用system.schema_keyspaces 可能无法在未来的版本中工作(例如3.0+,其中架构移至system_schema);

    【讨论】:

    • 这是比接受的答案更新的答案。谢谢。
    【解决方案3】:

    在 3.0 + Cassandra 版本中,您可以从 system_schema.keyspaces replication 列中的 system_schema 键空间获取 RF 详细信息。

    cassandra@cqlsh:system_schema> SELECT * FROM system_schema.keyspaces;
    
     keyspace_name      | durable_writes | replication
    --------------------+----------------+-------------------------------------------------------------------------------------
            system_auth |           True | {'class': 'org.apache.cassandra.locator.SimpleStrategy', 'replication_factor': '1'}
          system_schema |           True |                             {'class': 'org.apache.cassandra.locator.LocalStrategy'}
     system_distributed |           True | {'class': 'org.apache.cassandra.locator.SimpleStrategy', 'replication_factor': '3'}
                company |           True | {'class': 'org.apache.cassandra.locator.SimpleStrategy', 'replication_factor': '2'}
                 system |           True |                             {'class': 'org.apache.cassandra.locator.LocalStrategy'}
                 jerry  |           True |                   {'class': 'org.apache.cassandra.locator.NetworkTopologyStrategy'}
          system_traces |           True | {'class': 'org.apache.cassandra.locator.SimpleStrategy', 'replication_factor': '2'}
    

    【讨论】:

      【解决方案4】:

      复制因子在 Keysapce 级别定义。

      要查看特定键空间的复制因子,请在 cqlsh 中使用以下查询:

      desc KEYSPACE Keyspace_Name;
      

      您将获得输出,您可以在其中看到上述键空间的复制因子:

      【讨论】:

        【解决方案5】:

        Cassandra 3.11 及以上版本:

        • 转到 Cassandra 节点上的路径:cd /usr/local/cassandra/apache-cassandra-3.11.0/bin
        • 键入命令:./cqlsh(您的 Cassandra 节点 IP)
        • 然后输入:SELECT * FROM system_schema.keyspaces;

        输出:您将获得 Cassandra 中所有相应键空间的复制因子

        【讨论】:

          【解决方案6】:

          如果您不想使用cqlsh 并且只想从终端 打印信息,请使用nodetool 和名为describe cluster 的命令,如下所示:

          [user@user ~]$ nodetool describecluster
          

          它将打印非常有用且简短的信息,包括关于键空间的信息,如下所示:

          Keyspaces:
              system_schema -> Replication class: LocalStrategy {}
              system -> Replication class: LocalStrategy {}
              system_distributed -> Replication class: SimpleStrategy {replication_factor=3}
              system_traces -> Replication class: SimpleStrategy {replication_factor=2}
              system_auth -> Replication class: NetworkTopologyStrategy {dc1=3}
          

          如果您正在寻找一个特定的键空间复制信息,只需使用以下命令(在本例中,我们将询问 system_auth 键空间信息):

          [user@user ~]$ nodetool describecluster | grep system_auth
          

          ..它会像这样打印信息:

          system_auth -> Replication class: NetworkTopologyStrategy {dc1=3}
          

          【讨论】:

            猜你喜欢
            • 2016-10-29
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2019-04-04
            • 1970-01-01
            • 2016-12-25
            相关资源
            最近更新 更多