cqlsh控制台中的NoHostAvailable错误

jAv*_*AvA 4 cassandra cqlsh

我以后能够摆脱这个错误,但我不确定我做了什么是正确的.1)

CREATE KEYSPACE myKeySpace WITH replication = 
  {'class': 'NetworkTopologyStrategy', 'dc1': '1', 'dc2': '2'}
  AND durable_writes = true;
Run Code Online (Sandbox Code Playgroud)

执行create table并在此之后选择table.这会在控制台中抛出"NoHostAvailable:"错误.

2)如果我将create语句更改为下面的一个,则select查询有效.

CREATE KEYSPACE myKeySpace WITH replication = 
  {'class': 'NetworkTopologyStrategy', 'datacenter1': '1', 'dc2': '2'}
  AND durable_writes = true; 
Run Code Online (Sandbox Code Playgroud)

如果我有一个默认的datacenter1,它可以工作.我无法理解为什么它只在我给datacenter1时才有效.请帮忙.

Aar*_*ron 9

您在执行时会看到哪些数据中心nodetool status

您指定为您的密钥空间复制因子(RF)的数据中心必须在任何您被预定义cassandra-rackdc.propertiescassandra-topology.properties文件(取决于您配置的金色飞贼).

  • 我创建它时没有指定任何数据中心,所以它可以使用默认值.感谢您的帮助,我能够弄清楚我现在需要做什么:) (2认同)

小智 6

当我尝试访问使用 NetworkTopologyStrategy 复制策略在键空间中创建的表时,我遇到了同样的问题。

后来我发现原因是因为我在本地使用,所以副本不可用。

如果我将键空间复制策略更改为 SimpleStrategy 并将replication_factor更改为 1,错误就会消失。

希望这可以帮助。