Cassandra - 在CQLSH中发出的每个命令都会抛出错误

时间:2016-08-11 08:48:43

标签: cassandra cql cqlsh

卡桑德拉让我头疼得厉害。昨天,一切运行正常,然后我删除了一个表,运行了一个CQLSSTableWriter,它以某种方式抛出了关于Lucene index的错误(因为没有在类路径或类似路径上),现在,我在cqlsh中发出的每个命令都是抛出错误。

<div class="col-xs-12"ng-repeat="items in testArray">
    <div class="col-xs-6">
    {{items.brand}}
    </div>
    <div class="col-xs-6 col-sm-offset-6">
        <button ng-click="selectAll = true">select All</button>
        <div ng-repeat="i in items.form">
            <input type="checkbox"  ng-checked="selectAll"/>{{i.formName}}
        </div>
    </div>
</div>

需要一段时间然后抛出:

CREATE KEYSPACE IF NOT EXISTS mydata WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'};

之后我会创建一个新表,它也会抛出相同的错误。

Warning: schema version mismatch detected, which might be caused by DOWN nodes; 
if this is not the case, check the schema versions of your nodes in system.local and system.peers. 
OperationTimedOut: errors={}, last_host=XXX.XXX.XXX.20

cqlsh:mydata> create table test (id text PRIMARY KEY, id2 text); Warning: schema version mismatch detected, which might be caused by DOWN nodes; if this is not the case, check the schema versions of your nodes in system.local and system.peers. OperationTimedOut: errors={}, last_host=XXX.XXX.XXX.20 始终显示我运行cqlsh的主机的ip。我也尝试过不同节点的相同命令。

然而,仍然正在创建键空间和表格!错误说明了一些关于模式版本不匹配的问题,所以我确定并运行了:

last_host

它的输出显示我的所有节点都在同一个模式上。没有架构不匹配。我之前也发过nodetool describecluster ,但没有任何运气。

当我继续向新创建的表中插入一些数据时,会出现以下错误。请注意,insert语句不会返回错误。

nodetool resetlocalschema

请注意,我有一个数据中心和五个节点。我不打算将来使用多个数据中心。 [cqlsh 5.0.1 | Cassandra 3.0.8 | CQL规范3.4.0 |原生协议v4]

我也多次重启Cassandra。 cqlsh:mydata> insert into test(id, id2) values('test1', 'test2'); cqlsh:mydata> select * from mydata.test ; Traceback (most recent call last): File "/usr/bin/cqlsh.py", line 1314, in perform_simple_statement result = future.result() File "/usr/share/cassandra/lib/cassandra-driver-internal-only-3.0.0-6af642d.zip/cassandra-driver-3.0.0-6af642d/cassandra/cluster.py", line 3122, 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'} 表示所有节点都已启动并正在运行。有没有人知道发生了什么?

1 个答案:

答案 0 :(得分:2)

我通过......修复了这个问题。

  1. 删除键区中的所有表

  2. 正在运行alter keyspace mydata WITH replication = {'class': 'NetworkTopologyStrategy', 'dc1': '1'};而不是SimpleStrategy

  3. 在所有节点上重新启动cassandra服务

  4. 重新创建所有表格

  5. runnning nodetool repair

  6. 现在我可以再次插入数据和查询数据。尽管如此,仍然不太确定这一切的原因是什么。