Cassandra и cqlsh - Cassandra неизвестна и спецификация CQL неизвестна

Я только что скачал Cassandra 1.0.10 и Java 1.6.0_45 на Ubuntu. Когда я запускаю команду 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 ; так что позаботьтесь об этом.


person jj172    schedule 06.08.2014    source источник
comment
Настоятельно рекомендую обновиться до 2.0.9. Мое единственное предположение по этому вопросу: у вас несоответствие между версией cqlsh и версией c*.   -  person RussS    schedule 07.08.2014
comment
Я согласен с @RussS - если вы используете текущую версию, вы получите все последние функции и исправления и с большей вероятностью найдете кого-то, кто может помочь. cassandra.apache.org/download   -  person Don Branson    schedule 07.08.2014
comment
@RussS Спасибо за предложение, но место, где я работаю, специально использует более старую версию cassandra, и мне нужно написать скрипт на java, который работает с этим. Таким образом, мне нужно будет использовать Cassandra 1.0, по крайней мере.   -  person jj172    schedule 07.08.2014


Ответы (1)


Я также не могу получить команду

   DESC KEYSPACES;

работать - это просто говорит

   Improper desc command.

Это связано с тем, что DESC KEYSPACES не является допустимой командой в версии cqlsh, поставляемой с Cassandra 1.0.x. Вот исходный код этой версии. Просто перейдите к 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, которых вам не хватает, эта версия содержала ошибки, которые уже давно устранены. Как бы ваша компания ни хотела этого делать, она лишь создает новые потенциальные проблемы, отказываясь от обновления.

person Aaron    schedule 07.08.2014