我已经在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。 谢谢。
答案 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