同一个DC上的两个Keyspace

时间:2016-09-07 03:55:13

标签: cassandra datastax datastax-enterprise

我已经在DC上创建了一个密钥空间。

为tradebees_dev键空间创建查询: - (此键空间工作正常。)

CREATE KEYSPACE tradebees_dev WITH replication = {'class': 'NetworkTopologyStrategy', 'solr': '3'}  AND durable_writes = true;

状态如下: -

nodetool status tradebees_dev

Datacenter: Solr
================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address        Load       Tokens  Owns (effective)  Host ID                               Rack
UN  127.0.0.1  1.09 GB    256     100.0%            e754d239-8370-4e1d-82c8-dce3d401f972  rack1
UN  127.0.0.2  1.19 GB    256     100.0%            70b74025-1881-4756-a0c8-a1ec5e57d407  rack1
UN  127.0.0.3  1.53 GB    256     100.0%            3ba4bfe4-c894-4cd1-a684-f0f20edac78f  rack1

之后,我在相同的DC上创建了另一个具有相同复制因子的键空间。

为crawl_dev密钥空间创建查询: -

CREATE KEYSPACE crawl_dev WITH replication = {'class': 'NetworkTopologyStrategy', 'solr': '3'}  AND durable_writes = true;

nodetool status crawl_dev

Datacenter: Solr
================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address        Load       Tokens  Owns (effective)  Host ID                               Rack
UN  127.0.0.1  1.09 GB    256     0.0%              e754d239-8370-4e1d-82c8-dce3d401f972  rack1
UN  127.0.0.2  1.19 GB    256     0.0%              70b74025-1881-4756-a0c8-a1ec5e57d407  rack1
UN  127.0.0.3  1.53 GB    256     0.0%              3ba4bfe4-c894-4cd1-a684-f0f20edac78f  rack1

由于第一个键空间工作正常但是当我尝试在第二个键空间上选择查询时,即在crawl_dev上,我收到以下错误消息。

Traceback (most recent call last):
  File "/usr/share/dse/resources/cassandra/bin/cqlsh", line 1124, in perform_simple_statement
    rows = self.session.execute(statement, trace=self.tracing_enabled)
  File "/usr/share/dse/resources/cassandra/bin/../lib/cassandra-driver-internal-only-2.7.2-5d33cb4.zip/cassandra-driver-2.7.2-5d33cb4/cassandra/cluster.py", line 1602, in execute
    result = future.result()
  File "/usr/share/dse/resources/cassandra/bin/../lib/cassandra-driver-internal-only-2.7.2-5d33cb4.zip/cassandra-driver-2.7.2-5d33cb4/cassandra/cluster.py", line 3347, in result
    raise self._final_exception
Unavailable: code=1000 [Unavailable exception] message="Cannot achieve consistency level ONE" info={'required_replicas': 1, 'alive_replicas': 0, 'consistency': 'ONE'}

请建议我如何解决此问题。并且让我知道我们可以在同一个DC上创建两个键空间。是或否。

经过一些研究,我得到了信息,然后我检查了

/etc/dse/cassandra/cassandra-rackdc.properties

在此文件中,dc = DC1,并给出rc = RACK1。 谢谢。

2 个答案:

答案 0 :(得分:1)

"创建密钥空间"中的数据中心名称命令区分大小写,因此不是:

CREATE KEYSPACE tradebees_dev WITH replication = {'class': 'NetworkTopologyStrategy', 'solr': '3'}  AND durable_writes = true;

您希望将Solr资本化,例如:

CREATE KEYSPACE tradebees_dev WITH replication = {'class': 'NetworkTopologyStrategy', 'Solr': '3'}  AND durable_writes = true;

您正在使用" nodetool status [keyspace]"进行故障排除。命令。注意在tradebees_dev的结果中,每个节点在Owns列中报告100%,这是有道理的,因为在3节点集群上有RF 3。然后注意crawl_dev它显示0%,这意味着没有节点拥有该数据,因此您收到的错误。在上面的例子中,我怀疑你确实用资本创建了tradebees_dev" Solr"在复制工厂,以及它的工作原理。

答案 1 :(得分:0)

我不明白为什么你不能在同一个DC上创建多个键空间。实际上,您已在群集中拥有多个键空间:

cqlsh> DESCRIBE keyspaces;

system_traces  system_schema  system_auth  system  system_distributed