创建模式的 Cassandra 集群似乎会使所有节点都关闭?

Cassandra cluster creating a schema appears to bring all nodes down?

所以我正在尝试创建一个测试 cassandra 集群(3 个节点)。我使用 Cassandra 1.2.19 设置了 3 个节点,都在同一个数据中心上。在每个节点上,我都编辑了 cassandra.yaml 文件和 cassandra-topology.proeperties 文件。无论如何,所以我遵循了文档,我可以使用"nodetool status"来测试并确保所有节点都已启动 - 到目前为止一切都很好。

然后我登录到种子节点并启动 cqlsh 并尝试创建密钥空间,一切都变成了梨形,我不知道为什么。 cqlsh 不会引发任何错误,但所有节点似乎都保持在 0.0% 并且没有任何作用,但是当我删除键空间和测试表时,它们会恢复到某个正常值。如果有人能指出我做错了什么,我将不胜感激。

这些是我用于键空间和模式的语句:

1
2
CREATE KEYSPACE testSpace WITH REPLICATION = {'class':'NetworkTopologyStrategy', 'DC1' : 1};
CREATE TABLE testSpace.TestDB (name varchar, salary int, PRIMARY KEY (name));

此时没有抛出错误,但是在表上执行 select * 会产生"无法完成请求:一个或多个节点不可用。"

1
2
cqlsh:testSpace> select * from TestDB  ;
Unable to complete request: one or more nodes were unavailable.

谁能告诉我我搞砸了什么?

我的网络属性文件如下,我使用的是"RackInferringSnitch":

1
2
3
10.1.10.100=DC1:RAC1
10.1.10.101=DC1:RAC1
10.1.10.102=DC1:RAC1

感谢您对此进行调查并感谢您提供任何信息。


当您使用 RackInferringSnitch 时,网络的拓扑结构由节点 IP 地址的八位字节推断。您使用了数据中心名称 DC1。创建密钥空间时,您需要使用节点 IP 的第二个八位字节数作为数据中心名称。例如,100 将是节点 110.100.200.105 的数据中心的名称。看起来这个"如何"有关密钥空间的信息被错误地从文档中删除了。


好吧,如果有人有兴趣 - 我通过将飞贼更改为 PropertiesFileSnitch 并删除了所有旧数据并重新启动 cassandra 来解决这个问题。

如果有人能解释为什么 RackInferringSnitch 不起作用,那将不胜感激。

干杯