Cassandra Keyspace表访问问题

时间:2015-07-27 04:21:30

标签: cassandra

cassandra版本:apache-cassandra-2.1.8

创建超级用户并使用同一用户成功登录后,我创建了一个密钥空间

sufian@cqlsh:dbs> CREATE KEYSPACE DBS WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy','dc1' : 2} AND DURABLE_WRITEs =TRUE

并创建了一个表emp作为

sufian@cqlsh:dbs> create table emp ( empid int,deptid int,first_name varchar,PRIMARY KEY (empid,deptid));

当我尝试查询表格时,我得到以下错误:

sufian@cqlsh:dbs> select * from dbs.emp; 
Traceback (most recent call last): File "C:\apache-cassandra-2.1.8-bin\apache-cassandra-2.1.8\bin\cqlsh",
line 1078, in perform_simple_statement rows = self.session.execute(statement, trace=self.tracing_enabled) File "C:\apache-cassandra-2.1.8-bin\apache-cassandra-2.1.8\bin..\lib\cassandra-driver-internal-only-2.6.0c2.post.zip\cassandra-driver-2.6.0c2.post\cassandra\cluster.py", 
line 1594, in execute result = future.result(timeout) File "C:\apache-cassandra-2.1.8-bin\apache-cassandra-2.1.8\bin..\lib\cassandra-driver-internal-only-2.6.0c2.post.zip\cassandra-driver-2.6.0c2.post\cassandra\cluster.py", 
line 3296, 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'}

2 个答案:

答案 0 :(得分:1)

数据中心名称区分大小写。

您已将密钥空间定义为在dc1'中有两个副本,但在您的原始问题中,您的数据中心名称是“DC1' (即大写)。

Cassandra允许您在数据中心中创建尚未存在的密钥空间和表格,因此请尝试更改密钥空间以使用' DC1'。

答案 1 :(得分:0)

您的一致性级别设置为ONE。这意味着必须将写入写入提交日志并记录至少一个副本节点。

您似乎只有一个节点。添加另一个节点应解决问题。

编辑:

您的复制因子似乎设置为2,这意味着应该有一个主节点和两个副本,一致性为ONE。因此,您需要三个节点,并且读取/写入必须至少在其中一个节点中发生,以使查询成功。其他两个副本将获得最终使查询最终一致的数据