【问题标题】:Cassandra NoHostAvailable: error in CQLSHCassandra NoHostAvailable:CQLSH 中的错误
【发布时间】:2023-08-29 02:08:01
【问题描述】:

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

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

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

【问题讨论】:

  • 您的集群中有多少个节点?您在密钥空间中设置了什么射频?如果您使用的是 NetworkTopologyStrategy,请确保使用出现在 nodetool status 中的相同数据中心名称。

标签: cassandra cqlsh


【解决方案1】:

回答太晚了。但我想分享我的经验。

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

Error during inserting data: NoHostAvailable:

【讨论】:

  • "如果你有一个单节点集群并且使用 NetworkTopologyStrategy,那么它会抛出这个错误。"这是不正确的概括:*.com/questions/39904798/…
【解决方案2】:

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

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

【讨论】:

    最近更新 更多