Как заставить Cassandra запускаться, когда появляется ошибка "Отказано в соединении"?

Я установил Cassandra на Ubuntu 16.04. (Я заставил Кассандру работать на RedHat. Но теперь я хочу, чтобы она работала на Ubuntu.) Казалось, что установка прошла гладко. Я запускаю эту команду, чтобы доказать, что Кассандра активна:

sudo service cassandra status

Эта команда возвращает этот вывод:

cassandra.service - LSB: distributed storage system for structured data 
Loaded: loaded (/etc/init.d/cassandra; bad; vendor preset: enabled)   
Active: active (exited) since Tue 2017-12-26 19:22:43 UTC; 8min ago
Docs: man:systemd-sysv-generator(8)   Process: 1252 ExecStart=/etc/init.d/cassandra start (code=exited, status=0/SUCCESS)     
Tasks: 0    Memory: 0B         CPU: 0

Вышеуказанное "плохо" касается меня. Но он возвращает "Активный". Кажется, что нет никаких серьезных проблем.

Когда я запускаю "cqlsh" или "cqlsh 127.0.0.1", я получаю

Ошибка подключения: ("Невозможно подключиться к каким-либо серверам", {'127.0.0.1': ошибка (111, "Попытка подключения к [('127.0.0.1', 9042)]. Последняя ошибка: подключение отклонено")})

Я использовал nmap для тестирования порта 9042. Порт не заблокирован. Там также не установлен брандмауэр.

Я перезагрузил сервер. Я попытался изменить cassandra-env.sh. Я раскомментировал строфу и установил ее на 127.0.0.1:

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

Ничто из того, что я делаю, не работает. Я ожидаю ввода другой командной строки, когда набираю "cqlsh" или "cqlsh 127.0.0.1". Но этого не происходит. Что мне сделать, чтобы "cqlsh" работал на сервере Ubuntu?

1 ответ

Если вы посмотрите на /var/log/cassandra/system.log, то увидите:

Порт уже используется: 7199; Вложенное исключение:java.net.BindException: адрес уже используется (сбой привязки)

Это порт по умолчанию в /etc/cassandra/cassandra-env.sh:

JMX_PORT = "7199"

Поменял его на другой порт: 7198.

Это решение работает для меня.

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