2016-03-21 6 views
6

Я пытаюсь настроить Cassandra Datastax Community Edition для удаленного подключения на окнах,Как настроить Кассандру для удаленного подключения

Cassandra Сервер устанавливается на ПК Windows 7, с местным CQLSH он соединяется отлично местный сервер.

Но когда я пытаюсь соединить с CQLSH с другого компьютера в той же сети, я получаю сообщение об ошибке:

Connection error: ('Unable to connect to any servers', {'MYHOST': error(10061, "Tried connecting to [('HOST_IP', 9042)]. Last error: No connection could be made because the target machine actively refused it")})

Так я задаюсь вопросом, как правильно настроить (какие изменения я должен сделать на файле конфигурации cassandra.yaml) сервер Cassandra для удаленного подключения.

Спасибо заранее!

ответ

10

Удаленный доступ к Кассандре через свой бережливый порт для 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.

Узел cassandra должен быть привязан к IP-адресу сетевой карты вашего сервера - он не должен быть 127.0.0.1 или localhost, что это IP-адрес loopback-интерфейса, привязка к которому предотвратит прямой удаленный доступ. Чтобы настроить связанный адрес, используйте параметр rpc_address в cassandra.yaml. Установка этого значения на 0.0.0.0 будет прослушиваться на всех сетевых интерфейсах.

Вы проверили, что удаленный компьютер может подключиться к узлу Cassandra? Существует ли межсетевой экран между машинами? Вы можете попробовать эти шаги, чтобы проверить это:

1) Убедитесь, что вы можете подключиться к этому IP от сервера, вы находитесь на:

$ SSH [email protected]

2) Проверьте состояние узла, а также подтвердить, что показывает тот же IP:

$ nodetool статус

3) Запустите команду соединиться с IP (только указать порт, если вы не используете по умолчанию):

$ cqlsh xxx.xxx.xx.xx

+0

Здравствуйте, Спасибо за помощь, на самом деле ваш второй пункт был очень полезен для меня, чтобы узнать, что вызывает проблему. Распечатанное состояние nodetool показало, что узел не указывает на локальный IP-адрес машины, а затем с помощью команды «ipconfig», я обнаружил, что машина использует адаптер Virtualbox Ethernet. Итак, после отключения виртуального адаптера Virtualbox, nodetool напечатал настоящий локальный IP-адрес, и удаленное соединение сработало для меня !!! еще раз спасибо! – Obama

+0

Здорово слышать :) – Kat

3

Альтернативное решение Kat. Работал с Ubuntu 16.04

  1. соединитесь с сервером [email protected]**.**.**.**
  2. Stop Кассандры при работе:

    • Проверьте, работает с ps aux | grep cassandra
    • Если работает, будет выводить большой блок команд/флагов , например

      ubuntu 14018 4.6 70.1 2335692 712080 pts/2 Sl+ 04:15 0:11 java -Xloggc:./../logs/gc.log ........

      Примечание 14018 в примере идентификатор процесса

    • Stop с kill <process_id> (в данном случае 14018)
  3. редактировать файл cassandra.yaml быть следующим

    • rpc_address: 0.0.0.0
    • broadcast_rpc_address: **.**.**.** < - IP адрес вашего сервера (не может быть установлен в 0.0.0.0)
  4. Restart Кассандры ./bin/cassandra -f (внутри Кассандры корня)
  5. Открыть другой терминал на локальном компьютере & подключить через cqlsh **.**.**.** (IP вашего сервера), чтобы проверить ,

Адрес ./bin/nodetool status сообщил, что мой localhost IP (127.0.0.1), но cqlsh удаленно работал, несмотря на это.

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

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