cassandra - 无法达到一致性级别 ONE : info={ 'required_replicas' : 1, 'alive_replicas' : 0, 'consistency' : 1}

标签 cassandra datastax

在我的 Cassandra 设置中, key 空间复制似乎没有正确发生,我需要一些想法来解决这个问题。我已经配置了多数据中心集群,但首先我已经将 key 空间设置为将 SimpleStrategy 与 RF 3 一起使用。

列族存在:

cqlsh:kairosdb> select columnfamily_name from system.schema_columnfamilies where keyspace_name = 'kairosdb';

 columnfamily_name
-------------------
       data_points
     row_key_index
      string_index

(3 rows)

但我无法查询它们:
cqlsh:kairosdb> select count(*) from data_points limit 100000;
 Traceback (most recent call last):
  File "/usr/bin/cqlsh", line 957, in perform_simple_statement
    rows = self.session.execute(statement, trace=self.tracing_enabled)
  File "/usr/share/cassandra/lib/cassandra-driver-internal-only-2.1.1.post.zip/cassandra-driver-2.1.1.post/cassandra/cluster.py", line 1282, in execute
    result = future.result(timeout)
  File "/usr/share/cassandra/lib/cassandra-driver-internal-only-2.1.1.post.zip/cassandra-driver-2.1.1.post/cassandra/cluster.py", line 2776, in result
    raise self._final_exception
Unavailable: code=1000 [Unavailable exception] message="Cannot achieve consistency level ONE" info={'required_replicas': 1, 'alive_replicas': 0, 'consistency': 1}

这是我设置多数据中心设置的方式:
  • 使用种子列表中每个 DC 的 2 个节点
  • 使用 org.apache.cassandra.locator.GossipingPropertyFileSnitch 作为 Snitch
  • 根据节点
  • 在 cassandra-rackdc.properties 中为 DC 指定不同的名称

    这是创建的 key 空间:
    cqlsh:kairosdb> describe keyspace kairosdb;
    
    CREATE KEYSPACE kairosdb WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '3'}  AND durable_writes = true;
    

    有什么想法可以解决这个问题吗?

    最佳答案

    在您的 key 空间创建中,您有以下语法:

    CREATE KEYSPACE kairosdb WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '3'}  AND durable_writes = true;
    

    但是,如果您希望跨数据中心 (DC) 使用复制,则需要使用 NetworkTopologyStrategy ,例如:
    CREATE KEYSPACE kairosdb WITH replication = {'class': 'NetworkTopologyStrategy', 'DC1': 3, 'DC2': 3};
    

    根据以下文档链接,“当您拥有(或计划拥有)跨多个数据中心部署集群时,请使用 NetworkTopologyStrategy...”

    http://www.datastax.com/documentation/cassandra/2.0/cassandra/architecture/architectureDataDistributeReplication_c.html

    关于cassandra - 无法达到一致性级别 ONE : info={ 'required_replicas' : 1, 'alive_replicas' : 0, 'consistency' : 1},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26724662/

    相关文章:

    cassandra - Datastax Cassandra 2.2.5 : Change Logging Location (logback)

    java - Cassandra LongType 列名转字符串问题

    java - Apache Cassandra 启动失败 : FSWriteError (. ..) 不允许操作

    hadoop - 在 snappy 压缩列族上运行 hadoop 作业

    java - 当 Cassandra 中特定数据中心的所有节点都关闭时执行读写操作

    Cassandra 压缩任务卡住了

    cassandra - 如何在 cql3 查询选择中执行 "not in"过滤器?

    java - 将数据从java存储到cassandra

    java - Datastax Cassandra java 驱动程序 - 对象映射器 - 自动创建表

    用于分区大小的 Cassandra 桶拆分