0

我刚刚在 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 ;这样就可以解决那个问题。

4

1 回答 1

2

我也无法获得命令

   DESC KEYSPACES;

工作——它只是说

   Improper desc command.

这是因为在Cassandra 1.0.x 附带DESC KEYSPACES的版本中不是一个有效的命令。cqlsh这是该版本的来源。直接跳到def do_describe(self, parsed):,你会发现它不在里面。更好的是,从内部cqlsh,您可以通过运行来验证这一点help descDESC 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

基本上,您的问题是由于您使用的是 Cassandra 版本的TRS-80。并且从那时起使用了 Cassandra 的版本,我可以告诉你,你的问题不会好转。除了您缺少的 2.0.x 的所有重要功能之外,该版本还存在早已消除的错误。尽管您的公司可能不想这样做,但他们拒绝升级只会招致更多潜在问题。

于 2014-08-07T00:39:33.393 回答