【发布时间】:2012-07-25 21:24:51
【问题描述】:
我对 Cassandra 还是很陌生。我有一个单节点集群运行了几天,没有任何问题,但今天它开始忽略我的一些 CQL 命令。 SELECTs 工作正常,但如果我从 cqlsh 运行 DROP TABLE foo; 则什么也不会发生。暂停半秒后,它让我回到提示符,但桌子没有被丢弃。使用CREATE INDEX 创建索引也是如此。
我在虚拟机中运行,在 Ubuntu 12.04 上使用 OpenStax 的 Cassandra 发行版。
我检查了 Cassandra 日志,当我运行 CREATE INDEX 时肯定会得到输出,但没有明显的错误:
CREATE INDEX number_uri_index ON numbers (number);
生产:
INFO [MigrationStage:1] 2012-07-25 14:25:59,120 ColumnFamilyStore.java (line 643) Enqueuing flush of Memtable-schema_columnfamilies@15955724(1212/1515 serialized/live bytes, 20 ops)
INFO [FlushWriter:5] 2012-07-25 14:25:59,122 Memtable.java (line 266) Writing Memtable-schema_columnfamilies@15955724(1212/1515 serialized/live bytes, 20 ops)
INFO [FlushWriter:5] 2012-07-25 14:25:59,139 Memtable.java (line 307) Completed flushing /var/lib/cassandra/data/system/schema_columnfamilies/system-schema_columnfamilies-hd-50-Data.db (1267 bytes) for commitlog position ReplayPosition(segmentId=140485087964, position=8551)
INFO [MigrationStage:1] 2012-07-25 14:25:59,141 ColumnFamilyStore.java (line 643) Enqueuing flush of Memtable-schema_columns@7576227(320/400 serialized/live bytes, 5 ops)
INFO [FlushWriter:5] 2012-07-25 14:25:59,141 Memtable.java (line 266) Writing Memtable-schema_columns@7576227(320/400 serialized/live bytes, 5 ops)
INFO [FlushWriter:5] 2012-07-25 14:25:59,172 Memtable.java (line 307) Completed flushing /var/lib/cassandra/data/system/schema_columns/system-schema_columns-hd-46-Data.db (367 bytes) for commitlog position ReplayPosition(segmentId=140485087964, position=8551)
【问题讨论】:
-
您可以尝试使用 cassandra-cli 并删除相同的列族,看看会发生什么?
-
抱歉,我现在已经删除了整个数据目录并重新开始。我确实尝试通过 python 绑定使用 CQL 2 和 3 以及 CQL。都以同样的方式失败。
-
我的一个同事也遇到了同样的问题,但对她来说,如果她在版本 2 而不是 3 上使用 cqlsh 就可以了。如果再次发生,我们将尝试 cassandra-cli
-
好的,她再次遇到问题并尝试了 cassandra-cli,她可以删除列族和键空间。
-
@Fasaxc 这个问题听起来像是区分大小写的问题。 CQL 2 是保留大小写的,但 CQL 3 默认情况下会小写所有内容(因此,如果您有一个预先存在的 CF 或 KS 名称中包含大写字母,则必须在 CQL 3 中将该名称双引号)。