【问题标题】:Getting error "Cannot achieve consistency level ONE" while trying to insert record in DSE Cassandra尝试在 DSE Cassandra 中插入记录时出现错误“无法达到一致性级别 ONE”
【发布时间】:2017-01-08 03:26:06
【问题描述】:

我正在使用 DSE Cassandra 并希望使用 solr_query,因此创建了 Keyspace,如下所示:

create keyspace demo with replication = {'class': 'NetworkTopologyStrategy', 'Solr': 3};

创建了下表:

create table demo.onlinetransactions 
( unique_tran_id text, user_id text, account_type text, 
account_id text, create_ts timestamp, data text, 
primary key (unique_tran_id) );

但是,当我尝试在此表中插入记录时,我收到如下所述的错误:

insert into demo.onlinetransactions (unique_tran_id, user_id, 
account_type, account_id, create_ts, data) 
values ('trans1', 'user1', 'creditcard', 
'1234567890123451', '2015-01-01 09:00:00', '{amount:100.00,vendor:Amazon}');

错误:

NoHostAvailable: ('Unable to complete the operation against any hosts',
{<Host: 127.0.0.1 dc0>: Unavailable('Error from server: code=1000
[Unavailable exception] 
message="Cannot achieve consistency level ONE" 
info={\'required_replicas\': 1, \'alive_replicas\': 0, 
      \'consistency\': \'ONE\'}',)})

我需要验证哪些配置设置才能在具有“NetworkTopologyStrategy”和“Solr”设置的键空间中插入记录?

我还可以在键空间如下时插入记录(但这不是使用我想使用的 Solr。):

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

【问题讨论】:

  • 您的数据中心是否命名为 Solr?如果不是,那么您需要使用您的数据中心名称,因为此字段与 Solr 无关。需要注意的是,如果您在 DSE 中启用了 Solr,您所需要做的就是为 C* 表和索引创建一个核心。
  • 只是想知道在哪里可以找到数据中心的名称。我尝试了“cassandra-topology.properties”文件中的名称。这是我可以获得数据中心名称的位置吗?像 xx.0.0.xx=DC1:RAC1 我指定 DC1 仍然有错误。

标签: datastax-enterprise datastax-startup datastax-search


【解决方案1】:

在 KeySpace 中指定正确的数据中心名称后,solr_query 使用 NetworkTopologyStrategy 作为复制策略。

【讨论】:

    猜你喜欢
    • 2016-09-10
    • 2019-05-08
    • 1970-01-01
    • 2016-07-20
    • 2018-08-14
    • 2015-10-27
    • 1970-01-01
    • 1970-01-01
    • 2022-01-20
    相关资源
    最近更新 更多