我刚刚在 Ubuntu 上下载了 Cassandra 1.0.10 和 Java 1.6.0_45。当我在终端上运行命令 cqlsh 时,我得到以下输出:
Connected to Test Cluster at localhost:9160.
[cqlsh 2.0.0 | Cassandra unknown | CQL spec unknown | Thrift protocol 19.20.0]
Use HELP for help.
有人可以向我解释为什么它说“Cassandra 未知”和“CQL 规范未知”吗?我也无法获取命令
DESC KEYSPACES;
工作-它只是说
Improper desc command.
谁能告诉我这里的问题是什么?我意识到我使用的是旧版本的 Cassandra - 这可能是原因吗?
编辑:我意识到以上内容不起作用,因为我使用了错误的语法。应该是 DESC KEYSPACES ;这样就可以解决这个问题。
最佳答案
I also am not able to get the command
DESC KEYSPACES;
to work- it just says
Improper desc command.
那是因为 DESC KEYSPACES
在 cqlsh
版本中不是有效命令随 Cassandra 1.0.x 一起提供。这是 source from that version .直接跳到 def do_describe(self, parsed):
你会发现它不在里面。更好的是,从内部 cqlsh
,您可以通过运行 help desc
来验证. DESC KEYSPACE [<keyspacename>]
是,但是 DESC KEYSPACES
不是。
同样,您会看到这个 | Cassandra unknown | CQL spec unknown |
出于同样的原因。 cqlsh
的那个版本试图使用 system.Versions
列族以查看您正在运行的软件版本。但是 1.0.x 的旧版本一定没有那个列族。在上面的同一链接中,跳到 def get_cluster_versions(self):
你会发现负责的代码:
def get_cluster_versions(self):
try:
self.cursor.execute('select component, version from system.Versions')
vers = dict(self.cursor)
except cql.ProgrammingError:
# older Cassandra; doesn't have system.Versions
thrift_ver = self.get_thrift_version()
return {'build': 'unknown', 'cql': 'unknown', 'thrift': thrift_ver}
return vers
基本上,您的问题是由于您使用的是 TRS-80。 Cassandra 版本。从那时开始使用 Cassandra 版本,我可以告诉你,你的问题不会变得更好。除了您缺少的 2.0.x 的所有重要功能之外,该版本还存在早已被消除的错误。尽管您的公司可能不希望这样做,但他们拒绝升级只会招致更多潜在问题。
关于linux - Cassandra 和 cqlsh - "Cassandra unknown"和 "CQL spec unknown",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25171521/