Cassandra NoHostAvailable:CQLSH 中的错误

Cassandra NoHostAvailable: error in CQLSH

我刚刚在 cassandra 中创建了 table。我试图将数据插入 table,但出现此错误:

cqlsh:test> INSERT into qw (id, user, pass, email, phoneNum) VALUES (1,  'scman', '123','sc@gmaail.com','123-456-7890');
NoHostAvailable:

我检查过我的服务器是 运行。是什么导致了这个问题。

来不及回答了。但我想分享我的经验。

如果您有一个单节点集群并使用 NetworkTopologyStrategy,则会抛出此错误。检查您的密钥空间配置。

我的 CQL 命令更新复制

ALTER KEYSPACE my_keyspace WITH replication = {'class' : 'NetworkTopologyStrategy', 'DC1' : 1 ,'DC2' :2 };

与配置文件略有不同:conf/cassandra-rackdc.properties

# These properties are used with GossipingPropertyFileSnitch and will
# indicate the rack and dc for this node
dc=dc1
rack=rack1

导致

cqlsh: my_keyspace> select * from world where message_id = 'hello_world';

NoHostAvailable:

复制策略区分大小写,文档中的 copy/paste 可能会导致您出错。

修复:更改复制信息以匹配配置文件

ALTER KEYSPACE my_keyspace WITH replication = {'class' : 'NetworkTopologyStrategy', 'dc1' : 1 ,'dc2' :2 };

并在每个节点上执行:

bin/nodetool repair --full my_keyspace

在每个节点上都设置了复制