2016-03-10 4 views
2

Я только начал изучать кассандру, и у меня проблемы с cqlsh. Я запускаю Cassandra 2.2.2 и cqlsh 4.1.1. Я мой файл Cassandra.yaml, я установил start_rpc: false, так как не хочу использовать протокол Thrift.ошибки cqlsh при подключении к Cassandra на локальном порту 9042 режим двоичного протокола

Кассандры начинается нормально, но когда я бегу cqlsh команду я получаю:

Connection error: Could not connect to localhost:9160 

я понял, что, вероятно, следует подключить к порту 9042, как я не использую бережливость. Так что я изменил мою команду:

cqlsh localhost 9042 

Я получаю следующее сообщение об ошибке:

Traceback (most recent call last): 
    File "/usr/local/bin/cqlsh", line 2044, in <module> 
    main(*read_options(sys.argv[1:], os.environ)) 
    File "/usr/local/bin/cqlsh", line 2030, in main 
    display_float_precision=options.float_precision) 
    File "/usr/local/bin/cqlsh", line 480, in __init__ 
    cql_version=cqlver, transport=transport) 
    File "/usr/local/lib/python2.7/site-packages/cql/connection.py", line 143, in connect 
    consistency_level=consistency_level, transport=transport) 
    File "/usr/local/lib/python2.7/site-packages/cql/connection.py", line 59, in __init__ 
    self.establish_connection() 
    File "/usr/local/lib/python2.7/site-packages/cql/thrifteries.py", line 159, in establish_connection 
    self.remote_thrift_version = tuple(map(int, self.client.describe_version().split('.'))) 
    File "/usr/local/lib/python2.7/site-packages/cql/cassandra/Cassandra.py", line 1255, in describe_version 
    return self.recv_describe_version() 
    File "/usr/local/lib/python2.7/site-packages/cql/cassandra/Cassandra.py", line 1265, in recv_describe_version 
    (fname, mtype, rseqid) = self._iprot.readMessageBegin() 
    File "/usr/local/lib/python2.7/site-packages/thrift/protocol/TBinaryProtocol.py", line 126, in readMessageBegin 
    sz = self.readI32() 
    File "/usr/local/lib/python2.7/site-packages/thrift/protocol/TBinaryProtocol.py", line 206, in readI32 
    buff = self.trans.readAll(4) 
    File "/usr/local/lib/python2.7/site-packages/thrift/transport/TTransport.py", line 63, in readAll 
    raise EOFError() 
EOFError 

я делаю что-то неправильно? Пожалуйста, порекомендуйте.

Добавление большего количества деталей из cassandra.yaml:

rpc_address: localhost 
listen_address: localhost 

broadcast_rpc_address не установлен. это прокомментировано. Предположим, что это значение по умолчанию/

ответ

2

В вашей cassandra.yaml, каковы значения listen_address, rpc_address и broadcast_rpc_address? Вы должны подключить cqlsh к IP-адресу, указанному в одном из них.

У вас есть несколько версий Cassandra? Я только спрашиваю, потому что cqlsh автоматически соединяется через 9042 с Cassandra 2.1, поэтому вам не нужно указывать его.

Если у вас установлена ​​более старая версия, установленная с помощью установщика пакетов (apt-get, yum), тогда просто запуск cqlsh вызовет старый, и вам нужно будет указать полный путь для вызова правильного вашей новой версии.

Я упоминаю об этом, поскольку cqlsh 4.1.1 был доставлен с Cassandra 2.0.11 и DSE 4.6.0. Если у вас действительно есть Cassandra 2.2, то ваша версия cqlsh должна быть не менее 5.0.

Итог проекта: Убедитесь, что вы используете cqlsh, который был доставлен с вашей версией Cassandra.

+0

Я обновил вопросы с подробной информацией, которую вы задали. – motiver

+1

Кроме того, вы правы, у меня есть Cassandra 2.1.2 и 2.2.2. – motiver

 Смежные вопросы

  • Нет связанных вопросов^_^