Остановить сервер cassandra на mac os x
Как остановить сервер cassandra на одном node в моем mac os x?
Cassandra script не имеет опции -stop. Единственным способом, кроме перезапуска mac os x, было сделать "ps" и найти java-процесс, который имел аргументы для cassandra и использовать kill -9, чтобы убить процесс.
Но попытка перезапуска cassandra после этого все еще бросает
Error: Exception thrown by the agent : java.rmi.server.ExportException: Port already in use: 7199; nested exception is:
java.net.BindException: Address already in use
.
Кто-нибудь видел это? Любые быстрые решения?
Ответы
Ответ 1
EDIT: Я на самом деле считаю это гораздо более полезным.
Откройте терминал и введите:
$ps -ax | grep cassandra
дает вам список pids, запущенных с именем cassandra.
Использовать номер PID, чтобы убить процесс, например, это возвращаемое значение:
708 ttys000 0: 03.10/usr/bin/java -ea -javaagent: Загрузки /Web/Cassandra/dsc -cassandra-1.1.0/bin/
$kill 708
Старый пост:
После публикации моего комментария я нашел stop-server script в BIN.
Вам нужно открыть script и прокомментировать код, если вы хотите использовать этот script. Но вот что он говорит внутри script.
echo "please read the stop-server script before use"
# if you are using the cassandra start script with -p, this
# is the best way to stop:
kill `cat <pidfile>`
# otherwise, you can run something like this, but
# this is a shotgun approach and will kill other processes
# with cassandra in their name or arguments too:
# user=`whoami`
# pgrep -u $user -f cassandra | xargs kill -9
Ответ 2
Нашел это решение в другом месте, которое, похоже, работает!
pkill -f 'java.*cassandra'
Стоит попробовать!
Это работает на Ubuntu, который у меня есть. Не на MacOS!
На Mac еще один ps -af | grep cassandra
, а затем с помощью kill. Но иногда это не работает!
Ответ 3
Если вы установили cassandra через homebrew, используйте brew info cassandra
, и он расскажет вам, как загружать/выгружать cassandra с помощью launchctll. Это лучше для меня, чем другие ответы здесь.
Команды
brew info cassandra
Чтобы просмотреть статус cassandra
brew services start cassandra
Чтобы запустить cassandra
brew services stop cassandra
Чтобы остановить cassandra
Ответ 4
Другой подход - посмотреть, какой процесс ОС имеет порт Cassandra open, например:
lsof -i :9160
Пример вывода:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 30253 aswan 214u IPv4 0xffffff80190dcc20 0t0 TCP *:netlock1 (LISTEN)
Затем вы можете использовать "kill -9 [pid]" в этом процессе.
Ответ 5
Вы также можете использовать команду Cassandra nodetool.
nodetool drain
В документации ничего не говорится об отключении, но она надежно работает для меня с одним локальным сервером node. Однако, как правило, для завершения выключения требуется несколько секунд.
Ответ 6
kill -9 ` acx | grep -i cassandra | awk '{print$1}'
`
Ответ 7
Я использую новую версию Datastax Enterprise 5.0, и она, по крайней мере, предлагает достаточно простую команду для остановки Cassandra:
dse cassandra-stop
Для закрытия требуется несколько минут, но это работает для меня.