2013-07-02 2 views
1

Я запускаю 6-узловой кластер cassandra 1.2 на VPC Amazon Web Service VPC с 64-разрядной версией JVM Oracle версии 1.7.0_10.cassandra 1.2 nodetool получение «Не удалось подключиться» при попытке подключения к удаленному узлу

Когда я вошел в один из узлов (например, 10.0.12.200), я могу запустить nodetool -h 10.0.12.200 status просто отлично.

Однако, если я попытаюсь использовать другой IP-адрес в кластере (10.0.32.153) с того же терминала, я получаю Failed to connect to '10.0.32.153:7199: Connection refused'.

На узле 10.0.32.153, с которым я пытаюсь подключиться, я выполнил следующие проверки.

  • От 10.0.12.200 я могу запустить telnet 10.0.32.153 7199 и я получаю соединение, так как представляется, не является проблемой группы безопасности/брандмауэр на порт 7199.

  • На 10.0.32.153, если я запустить netstat -ant|grep 7199 я вижу

    tcp 0 0 0.0.0.0:7199 0.0.0.0:* LISTEN

    так Cassandra действительно кажется, что слушает на порту

  • Файл cassandra-env.sh на 10.0.32.153 имеет все JVM_OPTS для JMX активного

    -Dcom.sun.management.jmxremote.port=7199 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false

Единственный выстрел в темноте я видел, пытаясь решить эту проблему пока поиск межсетях это установить следующее:

JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=10.0.32.153"

Но когда я это делаю, я даже не получил ответа. Он просто висит.

Любое руководство будет принята с благодарностью.

+1

ли вы обратный DNS настроены? JMX кажется счастливым, когда он есть, так что IP разрешает имя хоста, которое возвращается обратно к тому же IP. – Richard

+0

Я не верю, что обратные dns доступны в частных подсетях AWS VPC. – jspyeatt

ответ

3

Проблема закончилась тем, что была проблемой брандмауэра/группы безопасности. Хотя верно, что используется порт jmx 7199, очевидно, что другие порты используются случайным образом для rmi. Cassandra port usage - how are the ports used?

Таким образом, решение открыть брандмауэров затем настроить cassandra-env.sh включить

JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=<ip>