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'}
答案 0 :(得分:1)
数据中心名称区分大小写。
您已将密钥空间定义为在dc1'中有两个副本,但在您的原始问题中,您的数据中心名称是“DC1' (即大写)。
Cassandra允许您在数据中心中创建尚未存在的密钥空间和表格,因此请尝试更改密钥空间以使用' DC1'。
答案 1 :(得分:0)
您的一致性级别设置为ONE
。这意味着必须将写入写入提交日志并记录至少一个副本节点。
您似乎只有一个节点。添加另一个节点应解决问题。
编辑:
您的复制因子似乎设置为2,这意味着应该有一个主节点和两个副本,一致性为ONE。因此,您需要三个节点,并且读取/写入必须至少在其中一个节点中发生,以使查询成功。其他两个副本将获得最终使查询最终一致的数据