#cassandra #nodetool
#кассандра #nodetool
Вопрос:
В моем cassandra
кластере доступны все узлы.
Но для одного узла, когда я проверяю статус, он отображается как:
"nodetool: Failed to connect to '127.0.0.1:7199' - ConnectException: 'Connection refused (Connection refused)'."
Поскольку я видел некоторые исправления, я попытался перезапустить службу cassandra после настройки JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=127.0.0.1"
. Но опять же он выдает тот же статус, что и:
"nodetool: Failed to connect to '127.0.0.1:7199' - ConnectException: 'Connection refused (Connection refused)'."
Может кто-нибудь предложить другое решение?
Ответ №1:
Можете ли вы отредактировать свой вопрос с помощью фактической nodetool status
выполняемой команды?
Также вы используете стандартный cassandra-env.sh
файл по умолчанию? Или оно было изменено? Что касается локального / удаленного JMX, существуют логические проверки, подобные этой:
if [ "x$LOCAL_JMX" = "x" ]; then
LOCAL_JMX=yes
fi
if [ "$LOCAL_JMX" = "yes" ]; then
JVM_OPTS="$JVM_OPTS -Dcassandra.jmx.local.port=$JMX_PORT"
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.authenticate=false"
else
JVM_OPTS="$JVM_OPTS -Dcassandra.jmx.remote.port=$JMX_PORT"
...
Прежде всего, LOCAL_JMX
не определено по умолчанию. Итак, если вы хотите включить удаленный JMX, вам нужно будет скорректировать код. Во-вторых, настройка rmi.server.hostname
должна быть выполнена в правильном разделе.
Включение удаленного JMX также позволяет JMX работать с локального компьютера. Но идея заключается в том, что используемый порт (7199, по умолчанию) привязан к тому же IP, что и сам узел Cassandra.
По сути, если бы вы должны были прокомментировать локальные / удаленные if
конструкции, эти настройки должны позволять JMX (и nodetool) функционировать. Примечание: предположим, что внешний IP-адрес равен 10.2.3.5.
JVM_OPTS="$JVM_OPTS -Dcassandra.jmx.remote.port=$JMX_PORT"
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.port=$JMX_PORT"
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.rmi.port=$JMX_PORT"
JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=10.2.3.5"
В принципе, rmi.server.hostname
должен совпадать IP-адрес, используемый для подключения к узлу.
Если у вас по-прежнему возникают проблемы, начните с проверки вашего system.log
. При запуске каждый узел должен иметь такую строку:
StartupChecks.java:176 - JMX is enabled to receive remote connections on port: 7199
или:
StartupChecks.java:169 - JMX is not enabled to receive remote connections. Please see cassandra-env.sh for more info.