我在Amazon EC2的两台Linux机器上安装并启动了Cassandra。我还设置了cassandra.yaml来使用属性文件snitch并将cassandra-topology.properties文件配置如下:
<external IP 1>=AWS1:R1
<external IP 2>=AWS2:R1
然后创建一个密钥空间,如下所示:
create keyspace myks with strategy_options = [{AWS1:1,AWS2:1}] and placement_strategy='NetworkTopologyStrategy';
然后我创建了一个列系列,并尝试插入一行...但是,当我尝试插入时,我从CLI获得了空值。我错过了配置中的一些内容吗?
我怎样才能知道发生了什么?
另外 - Cassandra在启动时只读取了cassandra拓扑吗?
由于
答案 0 :(得分:1)
看起来密钥空间创建没有正确完成。这是一个简单的事实,无论何时在填充时获取UnavailableException(),都要理所当然地认为创建密钥空间存在问题。在您的情况下,您没有提到所需placement_strategy的完整类路径
CREATE KEYSPACE myks WITH placement_strategy = 'org.apache.cassandra.locator.NetworkTopologyStrategy'
AND strategy_options=[{AWS1:1,AWS2:1}];
是Cassandra仅在创建密钥空间(启动)时读取拓扑