我刚刚在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;所以照顾那个。答案 0 :(得分:2)
我也无法获得命令
DESC KEYSPACES;
工作 - 它只是说
Improper desc command.
那是因为DESC KEYSPACES
不是Cassandra 1.0.x附带的cqlsh
版本中的有效命令。这是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的所有强大功能之外,该版本还受到很久以来被淘汰的错误的影响。尽管您的公司可能不会想要,但他们只是通过拒绝升级来引发更多潜在问题。