Программа установки кластера Cassandra получает ошибку JMX

Я пытаюсь настроить кластер cassandra в качестве испытательного стенда, но выдает ошибку удаленного подключения JMX. Кажется, я нашел ответ на свою ошибку на странице часто задаваемых вопросов cassandra.


Nodetool говорит: «Соединение отказано в хосте: 127.0.1.1» для любого удаленного хоста. Что дает?

Nodetool полагается на JMX, который, в свою очередь, полагается на RMI, который, в свою очередь, настраивает свои собственные прослушиватели и соединители по мере необходимости на каждом конце обмена. Обычно все это происходит прозрачно за кулисами, но неправильное разрешение имени либо для хоста, который подключается, либо для того, к которому подключен хост, может привести к пересечению проводов и запутанным исключениям.

Если вы не используете DNS, убедитесь, что ваши файлы /etc/hosts точны на обоих концах. Если это не удается, попробуйте передать параметр -Djava.rmi.server.hostname=$IP в JVM при запуске (где $IP — это адрес интерфейса, к которому вы можете получить доступ с удаленного компьютера).


Но может ли кто-нибудь помочь мне в том, как это сделать -Djava.rmi.server.hostname=$IP Или что добавить в файл hosts, я знаю, что в hosts обычно мы добавляем «IP Alias», но чей ip и псевдоним.

Я не очень хорошо знаю java или линукс

В настоящее время я работаю над Ubuntu v10.04 и Cassandra v0.74.

Судеш


person Sudesh    schedule 18.03.2011    source источник


Ответы (1)


Для JMX нужно включить JMX-remoting:

java -Dcom.sun.management.jmxremote

В зависимости от того, откуда вы хотите получить доступ к jmx-серверу, вам также необходимо указать порт:

-Dcom.sun.management.jmxremote.port=12345

и установить или отключить пароли.

Взгляните на http://download.oracle.com/javase/1.5.0/docs/guide/management/agent.html для получения дополнительной информации.

person Heiko Rupp    schedule 19.03.2011
comment
спасибо за ваш ответ, я просмотрел указанный вами URL-адрес и выполнил код ниже codejava -Dcom.sun.management.jmxremote.port=8080 \ -Dcom.sun.management.jmxremote.authenticate=false \ -Dcom.sun. management.jmxremote.ssl=false code Но указанная выше команда не выполнена, моя команда неверна - person Sudesh; 19.03.2011
comment
@Sudesh Вы добавили первый вариант -Dcom.sun.management.jmxremote - person Heiko Rupp; 20.03.2011
comment
Я выполнил этот код code java -Dcom.sun.management.jmxremote \ -Dcom.sun.management.jmxremote.port=8080 \ -Dcom.sun.management.jmxremote.authenticate=false \ -Dcom.sun.management.jmxremote. ssl=false code и получил вывод code Использование: java [-options] class [args...] (для выполнения класса) или java [-options] -jar jarfile [args...] (для выполнения jar-файла) code Я не знаю, что я делаю не так - person Sudesh; 20.03.2011
comment
@Sudesh: вам нужно добавить эти переключатели в дополнение к тому, что было раньше. Если в стартовых скриптах Cassandra есть концепция переменной окружения JAVA_OPTS, добавьте их туда. - person Heiko Rupp; 21.03.2011
comment
Спасибо, Хайко, вы показали путь, я пытаюсь выполнить эти команды в терминале, а должен был определить их в соответствующих файлах конфигурации. Мне не нужно было добавлять вышеуказанные java-команды, поскольку они уже были там. Для работы cassandra nodetools я открываю bin/nodetool в редакторе и добавляю -Djava.rmi.server.hostname=$IP в конце, где люди могут видеть java-команды, это помогло. Хайко еще раз спасибо за то, что показал путь - person Sudesh; 21.03.2011