Cassandra - CQLSH 中发出的每个命令都会抛出错误
Cassandra - Every command issued in CQLSH throws errors
Cassandra 让我很头疼。昨天,一切都 运行ning 很好,然后我删除了一个 table、运行 一个 CQLSSTableWriter,它以某种方式引发了关于我的 Lucene index 的错误(因为不在类路径或类似路径上)好几次,现在,我在 cqlsh 中发出的每条命令都会抛出错误。
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
之后我将创建一个新的 table,它也会抛出相同的错误。
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
last_host
总是显示我 运行 cqlsh 打开的主机的 ip。我也用不同的节点尝试过相同的命令。
键空间和 table 然而仍在创建中!该错误说明了模式版本不匹配,所以我确定 运行:
nodetool describecluster
它的输出显示我的所有节点都在同一个架构上。没有模式不匹配。我之前也发布过 nodetool resetlocalschema
,但没有任何运气。
当我继续将一些数据插入新创建的 table 时,出现以下错误。请注意,插入语句不会 return 错误。
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'}
请注意,我有一个数据中心和五个节点。我不打算在未来使用多个数据中心。 [cqlsh 5.0.1 |卡桑德拉 3.0.8 | CQL 规范 3.4.0 |本机协议 v4]
我也多次重启了Cassandra。 nodetool status
显示所有节点都已启动并且 运行ning。有谁知道发生了什么事?
我通过...解决了这个问题
删除键空间中的所有表
运行 alter keyspace mydata WITH replication = {'class': 'NetworkTopologyStrategy', 'dc1': '1'};
而不是 SimpleStrategy
正在所有节点上重新启动 cassandra 服务
正在重新创建所有表
正在运行nodetool repair
现在我可以再次插入数据和查询数据了。老实说,仍然不太确定这一切的原因是什么。
Cassandra 让我很头疼。昨天,一切都 运行ning 很好,然后我删除了一个 table、运行 一个 CQLSSTableWriter,它以某种方式引发了关于我的 Lucene index 的错误(因为不在类路径或类似路径上)好几次,现在,我在 cqlsh 中发出的每条命令都会抛出错误。
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
之后我将创建一个新的 table,它也会抛出相同的错误。
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
last_host
总是显示我 运行 cqlsh 打开的主机的 ip。我也用不同的节点尝试过相同的命令。
键空间和 table 然而仍在创建中!该错误说明了模式版本不匹配,所以我确定 运行:
nodetool describecluster
它的输出显示我的所有节点都在同一个架构上。没有模式不匹配。我之前也发布过 nodetool resetlocalschema
,但没有任何运气。
当我继续将一些数据插入新创建的 table 时,出现以下错误。请注意,插入语句不会 return 错误。
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'}
请注意,我有一个数据中心和五个节点。我不打算在未来使用多个数据中心。 [cqlsh 5.0.1 |卡桑德拉 3.0.8 | CQL 规范 3.4.0 |本机协议 v4]
我也多次重启了Cassandra。 nodetool status
显示所有节点都已启动并且 运行ning。有谁知道发生了什么事?
我通过...解决了这个问题
删除键空间中的所有表
运行
alter keyspace mydata WITH replication = {'class': 'NetworkTopologyStrategy', 'dc1': '1'};
而不是SimpleStrategy
正在所有节点上重新启动 cassandra 服务
正在重新创建所有表
正在运行
nodetool repair
现在我可以再次插入数据和查询数据了。老实说,仍然不太确定这一切的原因是什么。