我刚刚在卡桑德拉(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
在每个节点上设置了复制