Cassandra nohostavailable:CQLSH中的错误



我刚刚在卡桑德拉(Cassandra)创建了我的桌子。我试图将数据插入表中,并给出了此错误:

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

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

这为时已晚,无法回答。但是我想分享我的经验。

如果您有一个节点群集并使用NetworkTopologyStrategy,则会引发此错误。检查您的Keyspace配置。

插入数据期间的错误:nohostavailable:

我的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:

复制策略是案例敏感的,文档中的复制/粘贴可能会导致您犯错。

修复:更改复制信息,使其与配置文件

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

并在每个节点上执行:

bin/nodetool repair --full my_keyspace

在每个节点上设置了复制

最新更新