Cassandra 1.2 nodetool получает "Не удалось подключиться" при попытке подключения к удаленному узлу

Я использую кластер из 6 узлов Cassandra 1.2 на VPC Amazon Web Service с 64-битной JVM от Oracle версии 1.7.0_10.

Когда я вошел в систему на одном из узлов (например, 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-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 ответ

Эта проблема в конечном итоге стала проблемой брандмауэра / группы безопасности. Хотя верно то, что используется порт jmx 7199, очевидно, что другие порты используются случайным образом для rmi. Использование порта Кассандры - как используются порты?

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

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

Другие вопросы по тегам