Cassandra 在选择表 "NoHostAvailable:" 中的数据时发出错误



我已经创建了密钥空间,并使用Cassandra 3.0服务器创建了一个表。我正在使用 3 节点架构。其中三台服务器正在运行,能够连接 3 个节点。但是,当我使用 CQL 插入或选择数据时,它显示错误说">NoHostAvailable:">。请谁能为我提供此问题的原因和解决方案。

拓扑学

nodetool status输出

UN 172.30.1.7 230.22 KB 256 ? 2103dcd3-f09b-47da-a187-bf28b42b918e rack1 
DN 172.30.1.20 ? 256 ? 683db65d-0836-40e4-ab5b-fa0db20bae30 rack1 
DN 172.30.1.2 ? 256 ? 2b1f15d1-2f92-41ef-a03e-0e5f5f578cf4 rack1

图式

密钥空间

CREATE KEYSPACE test WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 2};

桌子

CREATE TABLE testrep(id INT PRIMARY KEY);

请注意,从节点工具状态来看,3 个节点集群中有 2 个处于关闭状态 (DN(。 您可能使用无法满足的一致性级别插入。

nodetool status
Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address    Load       Tokens       Owns    Host ID                               Rack
UN  127.0.0.1  237.31 MiB  256          ?       3c8a8d8d-992c-4b7c-a220-6951e37870c6  rack1
cassandra@cqlsh> create KEYSPACE qqq WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 2};
cassandra@cqlsh> use qqq;
cassandra@cqlsh:qqq> CREATE TABLE testrep(id INT PRIMARY KEY);
cassandra@cqlsh:qqq> insert into testrep (id) VALUES ( 1);
cassandra@cqlsh:qqq> CONSISTENCY 
Current consistency level is ONE.
cassandra@cqlsh:qqq> CONSISTENCY TWO ;
Consistency level set to TWO.
cassandra@cqlsh:qqq> insert into testrep (id) VALUES (2);
NoHostAvailable: 
cassandra@cqlsh:qqq> exit

最新更新