Как подключить Cassandra к локальному хосту с помощью cqlsh?

Я установил rpc_port на общедоступный IP-адрес, и теперь я могу без проблем подключиться к Cassandra с внешнего сервера.

Однако я не могу подключиться с самого сервера Cassandra, используя cqlsh

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

 Connection error: Could not connect to localhost:9160

Есть ли конфигурация, которую я могу изменить, чтобы иметь возможность подключаться с самого сервера?


person Albert Lim    schedule 01.06.2014    source источник


Ответы (14)


  1. Проверьте файл cassandra.yaml на строку с rpc_port : обычно по умолчанию = 9160
  2. Вход в машину на хостинге cassandra
  3. Попробуйте cqlsh 127.0.0.1 9160 : в любом случае все должно быть в порядке
  4. попробуйте cqlsh [IP of host] 9160 : если все в порядке, то cassandra доступно из локальной сети, если все в порядке, то cassandra недоступно из lan, а только localhost 127.0.0.1
person LeGeekDOzoZoo    schedule 09.09.2014
comment
Спасибо за указание направления, на самом деле в моем случае я нашел start_rpc: false, установив для него значение true, проблема устранена. - person Custodio; 02.12.2015

Вам нужно подключиться к cassandra через rpc_address, определенный в cassandra.yaml. Например, я использую cqlsh 10.0.80.49 9160.

person Daniel Compton    schedule 08.09.2014
comment
Дэниел. Я пытаюсь запустить cassandra в облаке Google и хочу использовать внешний IP-адрес. Я указал внешний адрес в rpc_address, но получил ошибку при попытке запуска cassandra- INFO [main] 2019-12-17 19:00:37,251 Server.java:159 - Starting listening for CQL clients on /xx.xx.xxx.xx:9042 (unencrypted)... Exception (java.lang.IllegalStateException) encountered during startup: Failed to bind port 9042 on xx.xx.x.xx. java.lang.IllegalStateException: Failed to bind port 9042 on x.x.x.x.x.. Знаете ли вы, что я могу делать неправильно? - person Manu Chadha; 17.12.2019
comment
Извините, нет, я не знаю, в чем проблема из вашего описания. Возможно, попробуйте список рассылки пользователей Cassandra или другие форумы поддержки сообщества? - person Daniel Compton; 18.12.2019

Рассмотрите возможность изменения /etc/cassandra.yaml:

# Whether to start the thrift rpc server.
start_rpc: false

to

start_rpc: true
person Hall Newman    schedule 11.12.2015
comment
Собственно у меня такой вариант и такая проблема - person Szymon Roziewski; 10.04.2017

если вы видите это в журналах cassandra:

INFO  [main] 2015-07-21 12:06:27,426 CassandraDaemon.java:406 - Not starting RPC server as requested. Use JMX (StorageService->startRPCServer()) or nodetool (enablethrift) to start it

затем просто откройте терминал и

$ nodetool enablethrift

как написано в информационном сообщении. Теперь должно работать. Получил это, когда моя система обновилась до cassandra 2.2.0

person Vincent de Lagabbe    schedule 21.07.2015

Если вы используете OSX

brew install cassandra

Первый запуск Кассандры

cassandra

Запустить Cassandra Подключиться через оболочку CQL

cqlsh 127.0.0.1

введите описание изображения здесь

person Gajen Sunthara    schedule 24.11.2015

Может быть, сначала запустить cassandra на вашем локальном компьютере bin/cassandra -f?

person Jun    schedule 27.07.2015

Он не слушает 127.0.0.1, так как вы сказали ему слушать только <public IP>. Сделайте адрес прослушивания 0.0.0.0 для прослушивания всех адресов (или просто опустите его, если возможно, так как это обычно используется по умолчанию). См. руководство по прослушиванию сокетов .NET или любой другой учебник по сокетам, чтобы получить общее представление о привязке сокетов.

Обновление (@c45556037 ):

Обратите внимание, что listen_address — это тот, который другие узлы используют для подключения к этому (вводящее в заблуждение название). rpc_address — это фактический адрес для локальной привязки. Из 2.0 неясно и лучше объясняется в документах 1.0.

person ivan_pozdeev    schedule 25.07.2014
comment
Но Кассандра из datastax говорит не устанавливать 0.0.0.0 для прослушивания адресов в самом файле .yaml? Почему так - person Gibbs; 20.02.2015
comment
Кассандра выдает ошибку, когда я это делаю. не рекомендуется - person Uzer; 23.10.2015
comment
@JonathanKelsey без подробностей, ваш комментарий не очень полезен - person ivan_pozdeev; 23.10.2015
comment
Хорошо, это вызывает ошибку в Cassandra 2.1.5.469. Типичный yaml будет иметь такой комментарий об адресе прослушивания: «Установка этого значения на 0.0.0.0 всегда неверна». Или из часто задаваемых вопросов Cassandra apache у нас есть эта заметка «Cassandra — это распределенная система, основанная на сплетнях». ListenAddress также является адресом для связи со мной здесь, т. е. адресом, который он сообщает другим узлам, чтобы связаться с ним. Говорить другим узлам, чтобы они связывались со мной по любому из моих адресов, — плохая идея; если разные узлы в кластере выбирают для вас разные адреса, случаются Плохие Вещи». Короче это просто плохой совет - person Uzer; 23.10.2015
comment
@JonathanKelsey Вздох. См. 2-ю часть, она ясно говорит установить rpc_address, а не listen_address. - person ivan_pozdeev; 23.10.2015

Я столкнулся с такой же ситуацией при запуске cqlsh. Я получил следующую ошибку при запуске cassandra

Введите только ----cassandra----- в терминал.

он покажет все банки и файлы журналов. если терминал завис, просто выйдите из него и введите cqlsh. затем он войдет в cassandra cli.

Это сработало для меня

person Satish Kumar Tiriveedhi    schedule 16.04.2016

для 2.0.5 у меня работает следующее..

   $CASSANDRA_HOME/bin/cqlsh xx.xx.xxx.xxx 9160
person user2720864    schedule 25.07.2014
comment
Не могли бы вы объяснить, почему этот ответ является решением? - person Qix - MONICA WAS MISTREATED; 25.07.2014

Исключение при подключении к localhost/9160. причина: в соединении отказано

Соединение отказалось от режима cassandra cli.

перейдите в корневой каталог cassandra:

bin/cassandra -- host {host-ip} --port {9160}

если у вас возникли проблемы с этим, проверьте свой {cassandra-root-directory}/conf/cassandra.yaml

экономный ip или rpc_address — это адрес, используемый в качестве host-ip для подключения к cli. сделайте его своим локальным IP-адресом, и если у вас возникли проблемы с подключением через порт 9160, попробуйте изменить rpc_port на 8070, а теперь попробуйте подключиться к режиму cassandra-cli с помощью команды

bin/cassandra --host {local-IP} --port 8070

Это сработало для меня, надеюсь, сработает и для вас.

person user3617840    schedule 01.06.2014

Пожалуйста, выполните приведенный ниже запрос, чтобы решить проблему

#!/bin/bash
export CASSANDRA_HOME=/opt/apache-cassandra-2.1.8
export CQLSH_HOST=192.168.1.200
export CQLSH_PORT=9042
echo $@
$CASSANDRA_HOME/bin/cqlsh $@'    

Обязательно измените IP-адрес и местоположение домашнего каталога Cassandra.

person Imran Ahmed    schedule 30.07.2015

Используйте эту команду

sudo service cassandra start

чтобы запустить кассандру, а затем использовать

cqlsh command
person Harish Kotikalapudi    schedule 24.11.2015

Рассмотрите возможность изменения /etc/cassandra-env.sh:

JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.ssl=true"
not "true" but "false"
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.ssl=false"

Перезапуск службы sudo cassandra

person Master rsl    schedule 28.07.2017

Как изменить порт 9042 по умолчанию в Cassandra?

Я решил проблему, используя следующие шаги:

1) Остановить службы кассандары

sudo su -
systemctl stop datastax-agent
systemctl stop opscenterd
systemctl stop app-dse

2) Сделайте резервную копию и измените порт с 9042 на 9035.

cp /opt/dse/resources/cassandra/conf/cassandra.yaml /opt/dse/resources/cassandra/conf/bkp_cassandra.yaml
vi /opt/dse/resources/cassandra/conf/cassandra.yaml

native_transport_port: 9035

3) Запустите службы Cassandra

systemctl start datastax-agent
systemctl start opscenterd
systemctl start app-dse

4) создайте файл cqlshrc.

vi  /root/.cassandra/cqlshrc

[connection]
hostname = 198.168.1.100
port = 9035
person mahesh agrawal    schedule 22.05.2018