Как настроить cassandra для удаленного подключения
Я пытаюсь настроить Cassandra Datastax Community Edition для удаленного подключения к окнам,
Сервер Cassandra установлен на ПК с Windows 7, С локальным CQLSH он прекрасно соединяется с локальным сервером.
Но когда я пытаюсь подключить с CQLSH с другого ПК в той же сети, я получаю это сообщение об ошибке:
Ошибка подключения: ( "Невозможно подключиться к любым серверам", { "MYHOST": error (10061, "Пробовал подключение к [(" HOST_IP ", 9042)]. Последняя ошибка: Нет соединение может быть выполнено, потому что целевая машина активно отказалась это" )})
Итак, мне интересно, как правильно настроить (какие изменения следует внести в файле конфигурации cassandra.yaml) сервер Cassandra для удаленного подключения.
Заранее благодарю вас!
Ответы
Ответ 1
Удаленный доступ к Cassandra через свой бережливый порт для Cassandra 2.0. В Cassandra 2.0.x порт прослушивания по умолчанию cqlsh равен 9160, который определен в cassandra.yaml параметром rpc_port. По умолчанию Cassandra 2.0.x и более ранние версии позволяют Thrift настраивать start_rpc на true в файле cassandra.yaml.
В Cassandra 2.1 утилита cqlsh использует собственный протокол. В Cassandra 2.1, где используется драйвер Python Datastax, порт прослушивания по умолчанию cqlsh равен 9042.
Кассандра node должна быть привязана к IP-адресу сетевой карты вашего сервера - она не должна быть 127.0.0.1 или localhost, которая является IP-интерфейсом loopback, привязка к которой предотвратит прямой удаленный доступ. Чтобы настроить связанный адрес, используйте параметр rpc_address в cassandra.yaml. Установка этого значения на 0.0.0.0 будет прослушиваться на всех сетевых интерфейсах.
Вы проверили, может ли удаленный компьютер подключиться к Cassandra node? Существует ли межсетевой экран между машинами? Вы можете попробовать эти шаги, чтобы проверить это:
1) Убедитесь, что вы можете подключиться к этому IP-адресу с сервера, на котором вы находитесь:
$ssh [email protected]
2) Проверьте состояние node и подтвердите, что он показывает тот же IP:
$статус nodetool
3) Запустите команду для подключения к IP (укажите только порт, если вы не используете значение по умолчанию):
$cqlsh xxx.xxx.xx.xx
Ответ 2
Как насчет этого:
Внесите эти изменения в конфигурационный файл cassandra.yaml:
start_rpc: true
rpc_address: 0.0.0.0
broadcast_rpc_address: [node-ip]
listen_address: [node-ip]
seed_provider:
- class_name: ...
- seeds: "[node-ip]"
ссылка: https://gist.github.com/andykuszyk/7644f334586e8ce29eaf8b93ec6418c4
Ответ 3
Альтернативное решение для Kat. Работала с Ubuntu 16.04
Адрес ./bin/nodetool status
сообщил о моем localhost IP (127.0.0.1), но cqlsh удаленно работал, несмотря на это.
Ответ 4
Для получения списка и объяснения всех параметров конфигурации cassandra.yaml вы можете перейти по адресу:http://cassandra.apache.org/doc/latest/configuration/cassandra_config_file.html#rpc-address