Не удается подключиться к узлу cassandra с другого хоста

У меня есть узел Кассандре на машине. Когда я получаю доступ к cqlsh из того же machne, он работает правильно.

но когда я попытался подключиться к нему cqlsh, используя " 192.X. X. x " с другой машины, я получаю сообщение об ошибке

ошибка подключения: ('не удается подключиться к серверам', {'192.х.х.х: ошибка(111, "пробовали подключить к [('192.X. X. x', 9042). Последняя ошибка: соединение отказано")})

в чем причина этого? Как я могу это исправить?

7 ответов


вероятно, удаленный узел Cassandra не привязан к внешнему сетевому интерфейсу, а к петле (это конфигурация по умолчанию). Вы можете убедиться в этом, используя "telnet thecassandrahost 9042" с удаленного компьютера, он не должен работать.

чтобы привязать Кассандру к внешнему сетевому интерфейсу, вам нужно отредактировать Кассандру.файл конфигурации yaml и задайте свойства"listen_address" и "rpc_address" удаленный IP или "0.0.0.0" (не все версии Cassandra поддерживает подстановочные адреса).

проверьте также, что брандмауэр правильно настроен или отключен (sudo service iptables stop).


задайте параметр config, в котором находится этот файл. Возможно!--1-->.

Кассандра.и YAML

listen_address: 192.x.x.x
rpc_address: 192.x.x.x

перезапустите службу.


1.Обновление:./conf/cassandra.yaml

rpc_address: 0.0.0.0 ("0.0.0.0" allow anywhere IP,but you can appoint an IP)

\# broadcast_rpc_address: 1.2.3.4 (Delete comment if pc_address=0.0.0.0)

2.перезапустить

./bin/cassandra

Case: я столкнулся с проблемой, что я не могу удаленный доступ к Кассандре, когда я использую java access cassandra


У меня такая же проблема. И я отвечу в этом посте. К сожалению, у меня ничего не получается. Я провел кое-какие исследования. И сейчас это работает. Вот моя сдача.

  • окружающая среда Ubuntu Server 16.04.3 LTS на VirtualBox, DSE версии 5.1

  • установить DSE

Я устанавливаю DSE следуйте этой странице https://docs.datastax.com/en/dse/5.1/dse-dev/datastax_enterprise/install/installGUIdse.html

  • перейти к /etc/dse / Кассандра / Кассандра.и YAML
  • изменить "семена" с 127.0.0.1 на {seriver ip} exp. мой 172.20.10.9
  • listen_address В официальном документе DSE 5.1 говорится: "никогда не указывайте 0.0.0.0; это всегда неправильно.' Что я сделал: закомментировать 'listen_address' параметр
  • 'rpc_address' изменить с localhost на 0.0.0.0
  • 'broadcast_address на IP сервера. Мой 172.20.10.9
  • ' broadcast_rpc_address ' изменить на ip сервера
  • перезапуск dse подождите пару минут, он меняется. Если все еще не работает, перезагрузите машину.

Это мой журнал За 15 секунд. 'ubuntu08@ubuntu08:~$ nodetool статус nodetool: не удалось подключиться к "127.0.0.1: 7199" - ConnectException: "соединение отказано (соединение отказано)". ubuntu08@ubuntu08:~$ nodetool статус

ошибка: узел еще не имеет system_traces, вероятно, все еще загружается ubuntu08@ubuntu08:~$ nodetool статус

Центр Обработки Данных: SearchGraphAnalytics

Статус=Вверх/Вниз / / Состояние=Нормальный / Выход/Присоединение / Перемещение -- Токены загрузки адреса владеют стойкой host ID ООН 10.0.0.44 278.51 КИБ 32 ? 19db0016-df63-4470-9921-f3b5fe4e9341 rack1 `

  • Я могу получить доступ к run ' cqlsh 172.20.10.9 ' с локальной или другой машины.

Это еще один документ для Кассандры https://docs.datastax.com/en/developer/java-driver/3.3/manual/address_resolution/


даже после того, как я поставил RPC_ADDRESS, Это не сработало для меня, пока я не установил .

Он всегда был установлен до false в моем случае. Я пробовал это с Ubuntu, Docker и Cassandra.


установите следующий параметр конфигурации в cassandra.файл yaml (для CentOS он находится в /etc/cassandra / default.conf)

rpc_address: 0.0.0.0

проверьте следующие значения такие же, как и ниже(обычно они по умолчанию)

start_native_transport: true

native_transport_port:9042

последний шаг для CentOS, обновите конфигурацию брандмауэра и разрешите порт 9042 через Для входящие соединения

  1. доступ к брандмауэру из "System / Administration / Firewall" в меню CentOS
  2. добавить порт в разделе "другие порты"

У меня тот же вопрос Я редактирую Кассандру.yaml установить listen_address и roc_address в качестве ip-адреса решить проблему.