当我对一个表运行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%
我只有一个单节点集群的设置,如何将此设置更改为单节点,我还需要更改我的键空间,我怀疑需要多个节点。
2条答案
按热度按时间v8wbuo2f1#
节点问题:看看你的
/etc/cassandra/cassandra.yml
部分种子。它应该只包含你的ip种子:“你的ip”选择:您需要检查复制因子,因此运行:cqlsh>descripe keyspace yuor \u keysapce;
如果大于1,可以通过以下方式进行更改:
然后跑
nodetool repair
如果之后找不到问题,可以重命名群集:登录cqlsh
UPDATE system.local SET cluster_name = 'YOUR_CLUSTER_NAME' where key='local';
退出cqlshnodetool flush
将cassandra.yaml cluster name编辑为您的\u cluster\u name。重新启动Cassandra。
axr492tv2#
您的数据似乎驻留在当前关闭的节点上。根据上述输出,在3节点集群中,2个节点关闭,复制因子为1。在这种情况下,select查询将转到coordinator节点,但coordinator节点无法从其他节点获取数据,因为这些节点已关闭。请尝试启动其他节点并尝试选择它将工作。