所以我试图创建一个测试cassandra集群(3个节点)。我使用Cassandra 1.2.19设置了3个节点,所有节点都在同一个数据中心。在每个节点上,我编辑了cassandra.yaml文件和cassandra-topology.proeperties文件。无论如何,我已经按照文档进行了操作,我可以使用“nodetool status'测试并确保所有节点都已启动 - 到目前为止一切顺利。
然后我登录种子节点并启动cqlsh并尝试创建密钥空间,一切都变成了梨形,我不知道为什么。 cqlsh不会抛出任何错误,但所有节点看起来都保持在0.0%并且没有任何效果,但是当我放下键空间和测试表时,它们会恢复到某个正常值。如果有人能指出我做错了什么,我真的很感激。
这些是我用于密钥空间和模式的语句:
CREATE KEYSPACE testSpace WITH REPLICATION = {'class':'NetworkTopologyStrategy', 'DC1' : 1};
CREATE TABLE testSpace.TestDB (name varchar, salary int, PRIMARY KEY (name));
此时没有抛出错误,但在表上执行select *会产生"无法完成请求:一个或多个节点不可用。"
cqlsh:testSpace> select * from TestDB ;
Unable to complete request: one or more nodes were unavailable.
有人可以告诉我,我搞砸了什么吗?
我的网络属性文件如下,我正在使用' RackInferringSnitch':
10.1.10.100=DC1:RAC1
10.1.10.101=DC1:RAC1
10.1.10.102=DC1:RAC1
感谢您查看此内容并感谢任何信息。
答案 0 :(得分:1)
使用RackInferringSnitch时,网络的拓扑结构由节点的IP地址的八位字节推断。您使用数据中心名称DC1。在创建密钥空间时,您需要使用节点IP的第二个八位字节编号作为数据中心名称。例如,100将是节点110.100.200.105的数据中心的名称。看起来错误地从文档中删除了关于密钥空间的“如何”信息。
答案 1 :(得分:0)
如果有人对此感兴趣 - 我通过将snitch更改为PropertiesFileSnitch并删除了所有旧数据并重新启动了cassandra并且无缝地工作,解决了这个问题。
如果有人能够解释为什么RackInferringSnitch没有工作,那么我们将不胜感激。
干杯