Подтвердить что ты не робот

Cassandra cqlsh - соединение отказано

Я только начал работать с Cassandra (datastax), версии 2.1.3 и cqlsh версии 5.0.1.

Кассандра запускается нормально, и кластер работает мгновенно.

Cqlsh не работает (ни на одном из узлов) и испускает следующую ошибку:

Ошибка подключения: ( "Невозможно подключиться к любым серверам", {'127.0.0.1': ошибка (111, "Пробовал подключиться к [('127.0.0.1', 9042)]. Последняя ошибка: соединение отклонено" )})

Я пробовал запустить cqlsh с хостами собственного ip, других хостов ip, разных портов, но результат остается тем же - всегда отказано в соединении.

4b9b3361

Ответ 1

Попробуйте изменить адрес rpc_address чтобы он указывал на IP-адрес узла вместо 0.0.0.0, и укажите IP-адрес при подключении к cqlsh, как если бы IP-адрес был 10.0.1.34, а для rpc_port осталось значение по умолчанию 9160, тогда должно работать следующее:

cqlsh 10.0.1.34 9160 

Или же:

cqlsh 10.0.1.34 

Также убедитесь, что start_rpc имеет значение true в файле конфигурации /etc/cassandra/cassandra.yaml.

Ответ 2

Вам нужно отредактировать cassandra.yaml на node, к которому вы пытаетесь подключиться, и установить IP-адрес node для rpc_address и listen_address и перезапустить Cassandra.

rpc_address - это адрес, по которому Cassandra прислушивается к клиентским вызовам.

listen_address - это адрес, на котором Кассандра прислушивается к другим узлам Кассандры.

Ответ 3

Если вы проверите файл system.log для cassandra в /var/log/cassandra, вы увидите, что эта проблема возникает из-за того, что сервер rpc не запущен.

По умолчанию start_rpc имеет значение false в файле cassandra.yaml. Установите значение start_rpc: true, а затем повторите попытку.

По крайней мере, в Cassandra 3.0 start_rpc по умолчанию имеет значение true. https://docs.datastax.com/en/cassandra/3.0/cassandra/configuration/configCassandra_yaml.html

Ответ 4

Это из-за некоторых предварительных настроек в Кассандре. И чтобы это исправить, в файле cassandra-env.sh есть следующие закомментированные строки:

#add this if youre having trouble connecting:
#JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=<public name>

где вы должны начать исправление ошибки.

Откройте терминал и начните исправление, выполнив следующие простые действия:

Шаг 1

использование

sudo nano/etc/cassandra/cassandra-env.sh

эта команда и ищет JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname= раскомментировать строку, просто удалив # прикрепленный в начале строки.

ПРИМЕЧАНИЕ. Если вы никогда не открывали этот файл, чтобы исправить эту ошибку, вы найдете JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=<public name>

Шаг 2 Теперь замените <public name> на 127.0.0.1

Шаг 3 Сохраните файл и перезапустите systemctl restart cassandra.service используя systemctl restart cassandra.service (если у вас его нет, сервер уже запущен). ИЛИ запустить systemctl start cassandra.service с помощью systemctl start cassandra.service (если сервер не запущен).

Шаг-4 Проверьте состояние, используя sudo service cassandra status или systemctl status cassandra.service.

Примечание: однажды проверьте системный монитор, работает ли Cassandra там или нет.

Попробуйте cqlsh сейчас. Это сработает.

Примечание: nano - редактор, вы можете использовать другие редакторы, которые вам удобны.

Ответ 5

Рекомендуется проверить журнал cassandra, даже если сервер работает. Я получал точно такое же сообщение и не мог ничего с этим поделать, и тогда я узнал, что в журнале есть ошибки, и система на самом деле не работает.

Глупо, я знаю, но может случиться...

Ответ 6

Была такая же проблема недавно после перехода с Cassandra 3.0 на Cassandra 2.2 на ArchLinux.

В отличие от вышеперечисленных решений моя проблема не была в .cassandra, но версия 3.0 оставила свою конфигурацию в каталоге /var/lib/cassandra.

Следующие команды решили мою проблему:

sudo rm -R /var/lib/cassandra
sudo rm -R /var/log/cassandra
sudo rm -R /usr/share/cassandra

Затем я установил cassandra, и все снова работало:)

Ответ 7

Посмотрите на native_transport_port в /etc/cassandra/cassandra.yaml По умолчанию используется 9842.

native_transport_port: 9842

Для подключения к localhost с cqlsh этот порт работал у меня.

cqlsh 127.0.0.1 9842

Ответ 8

попробуйте изменить native_transport_protocol на порт 9160 (если для него установлено значение, отличное от 9160, оно может указывать на 9042). Проверьте свои журналы и посмотрите, какой порт cassandra прослушивает CQL-клиенты?

Ответ 9

Для меня оказалось, что служба вообще не работает. Проверьте с помощью

service cassandra status

Если у вас такая же ошибка, как и у меня, или другой тип, то беспорядок с IP-адресами не решит вашу проблему вообще.

Ошибка, которую я получил:

cassandra dead but pid file exists

Изменить: это решение для моей проблемы: fooobar.com/questions/166060/...

Ответ 10

Я пытался запустить его на сетевом диске. Поэтому я увеличил client_timeout в cqlsh, и он сработал.

Ответ 11

Убедитесь, что вы также установили "семена" на адрес, который вы указали в "listen_address"

Ответ 12

Я столкнулся с той же проблемой с Cassandra 3.11.0, в любое время, когда я изменил адрес rpc или адрес прослушивания, cqlsh не работал. Я должен был добавить тот же локальный ip к seeds

Итак, после долгих проб и ошибок мой рабочий cassandra.yml закончился следующим образом:

class-name: org.apache.cassandra.locator.SimpleSeedProvider
parameters: 
    -seeds: "192.168.0.30"

listen_adress: 192.168.0.30
rpc_address: 192.168.0.30

Ответ 13

Попробуйте подключиться к указанному адресу. В моем случае брандмауэр блокировал меня.

Ответ 14

Когда я установил Cassandra 3.11.1, я столкнулся с этой проблемой. Я проверил /var/log/cassandra/cassandra.log и обнаружил эту ошибку. Исключительная ситуация, возникшая при запуске.... Это ошибка, о которой уже сообщалось. Оригинальная ссылка на пост https://issues.apache.org/jira/browse/CASSANDRA-14173.

Решение состоит в том, чтобы понизить Cassandra до 3,0

  1. скачать Cassandra rpm

curl -O https://www.apache.org/dist/cassandra/redhat/30x/cassandra-3.0.15-1.noarch.rpm

или же

wget https://www.apache.org/dist/cassandra/redhat/30x/cassandra-3.0.15-1.noarch.rpm

  1. rpm -ivh cassandra-3.0.15-1.noarch.rpm
  2. служба Кассандра Старт
  3. служба статуса Кассандры # проверка статуса Кассандры

Кассандра (PID 2322) работает...

  1. cqlsh # начать Кассандру

Ответ 15

Попавший в эту проблему для [cqlsh 5.0.1 | Cassandra 3.11.4 | CQL spec 3.4.4 | Native protocol v4] пришлось установить start_native_transport: true в файл cassandra.yaml.

Для проверки

  • попробуйте открыть файл tailf /var/log/cassandra/system.log в одной вкладке
  • обновить cassandra.yaml
  • перезапустите кассандру sudo service cassandra restart

В лог файле есть показы.

INFO  [main] 2019-03-15 19:53:06,156 Server.java:156 - Starting listening for CQL clients on /10.139.45.34:9042 (unencrypted)...

Ответ 16

cqlsh --cqlversion = "3.4.0" Подключен к тестовому кластеру 127.0.0.1:9042. [cqlsh 5.0.1 | Кассандра 3.0.9 | CQL spec 3.4.0 | Собственный протокол v4]

попробуйте приведенную выше команду. Меня устраивает.

Ответ 17

Попробуйте изменить адрес rpc_address так, чтобы он указывал на IP-адрес узла вместо 0.0.0.0, и укажите IP-адрес при подключении к cqlsh, как если бы IP-адрес был 10.0.2.64, а для rpc_port осталось значение по умолчанию 9160, тогда должно работать следующее:

cqlsh 10.0.2.64 9160 

ИЛИ

cqlsh 10.0.2.64

Также убедитесь, что для start_rpc задано значение true в файле конфигурации /etc/cassandra/cassandra.yaml.