cassandra:选择查询时出现cqlsh nohostavailable错误

ftf50wuq  于 2021-06-14  发布在  Cassandra
关注(0)|答案(2)|浏览(497)

当我对一个表运行select查询时,得到一个错误:nohostavailable在cqlsh中,尽管我可以在该表中插入。
当我尝试nodetool状态命令时,我发现。。。

Datacenter: datacenter1

 Status=Up/Down|/ State=Normal/Leaving/Joining/Moving
 --  Address       Load       Tokens       Owns (effective)  Host ID                               

 Rack

 DN  172.22.4.140  ?          256          65.0%             
 UN  127.0.0.1     2.05 MiB   256          69.8%             
 DN  172.22.8.44   ?          256          65.2%

我只有一个单节点集群的设置,如何将此设置更改为单节点,我还需要更改我的键空间,我怀疑需要多个节点。

lvjbypge

lvjbypge1#

您的数据似乎驻留在当前关闭的节点上。根据上述输出,在3节点集群中,2个节点关闭,复制因子为1。在这种情况下,select查询将转到coordinator节点,但coordinator节点无法从其他节点获取数据,因为这些节点已关闭。请尝试启动其他节点并尝试选择它将工作。

oxiaedzo

oxiaedzo2#

节点问题:看看你的 /etc/cassandra/cassandra.yml 部分种子。它应该只包含你的ip种子:“你的ip”
选择:您需要检查复制因子,因此运行:cqlsh>descripe keyspace yuor \u keysapce;
如果大于1,可以通过以下方式进行更改:

ALTER KEYSPACE keyspace_name 
WITH REPLICATION =  { 'class' : 'SimpleStrategy', 'replication_factor' : 1 };

然后跑 nodetool repair 如果之后找不到问题,可以重命名群集:
登录cqlsh UPDATE system.local SET cluster_name = 'YOUR_CLUSTER_NAME' where key='local'; 退出cqlsh nodetool flush 将cassandra.yaml cluster name编辑为您的\u cluster\u name。
重新启动Cassandra。

相关问题