Назад | Перейти на главную страницу

Как остановить ZooKeeper в Ubuntu?

Я установил zookeeperd на Ubuntu 14.04 (Trusty Tahr), как было предложено Вот:

К сожалению, остановить этот процесс как-то невозможно. Я пробовал даже убить -9

user@node1:/opt/zookeeper-3.4.6$ ps -ef | grep zookeeper
zookeep+  4008     1  8 01:07 ?        00:00:00 /usr/bin/java -cp /etc/zookeeper/conf:/usr/share/java/jline.jar:/usr/share/java/log4j-1.2.jar:/usr/share/java/xercesImpl.jar:/usr/share/java/xmlParserAPIs.jar:/usr/share/java/netty.jar:/usr/share/java/slf4j-api.jar:/usr/share/java/slf4j-log4j12.jar:/usr/share/java/zookeeper.jar -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=false -Dzookeeper.log.dir=/var/log/zookeeper -Dzookeeper.root.logger=INFO,ROLLINGFILE org.apache.zookeeper.server.quorum.QuorumPeerMain /etc/zookeeper/conf/zoo.cfg

показать процесс

user      4055  2823  0 01:07 pts/3    00:00:00 grep --color=auto zookeeper

убей это

user@node1:/opt/zookeeper-3.4.6$ sudo kill -9 4008

Проверьте:

user@node1:/opt/zookeeper-3.4.6$ ps -ef | grep zookeeper
zookeep+  4075     1 24 01:07 ?        00:00:00 /usr/bin/java -cp /etc/zookeeper/conf:/usr/share/java/jline.jar:/usr/share/java/log4j-1.2.jar:/usr/share/java/xercesImpl.jar:/usr/share/java/xmlParserAPIs.jar:/usr/share/java/netty.jar:/usr/share/java/slf4j-api.jar:/usr/share/java/slf4j-log4j12.jar:/usr/share/java/zookeeper.jar -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=false -Dzookeeper.log.dir=/var/log/zookeeper -Dzookeeper.root.logger=INFO,ROLLINGFILE org.apache.zookeeper.server.quorum.QuorumPeerMain /etc/zookeeper/conf/zoo.cfg

Попробуйте скрипт

user@node1:/opt/zookeeper-3.4.6$ sudo /etc/init.d/zookeeper stop
user@node1:/opt/zookeeper-3.4.6$ ps -ef | grep zookeeper
zookeep+  4075     1 29 01:07 ?        00:00:04 /usr/bin/java -cp /etc/zookeeper/conf:/usr/share/java/jline.jar:/usr/share/java/log4j-1.2.jar:/usr/share/java/xercesImpl.jar:/usr/share/java/xmlParserAPIs.jar:/usr/share/java/netty.jar:/usr/share/java/slf4j-api.jar:/usr/share/java/slf4j-log4j12.jar:/usr/share/java/zookeeper.jar -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=false -Dzookeeper.log.dir=/var/log/zookeeper -Dzookeeper.root.logger=INFO,ROLLINGFILE org.apache.zookeeper.server.quorum.QuorumPeerMain /etc/zookeeper/conf/zoo.cfg

Ничего не помогает.

Как я мог остановить ZooKeeper?

Вы можете попробовать:

sudo service zookeeper stop

чтобы остановить процесс. Если это не сработает, вы можете проверить эта ссылка:

Stop ZooKeeper. On the ZooKeeper host machine, execute the following command:

su - zookeeper -c "export ZOOCFGDIR=/etc/zookeeper/conf ; export ZOOCFG=zoo.cfg ;source /etc/zookeeper/conf/zookeeper-env.sh ; /usr/lib/zookeeper/bin/zkServer.sh stop" 

Если вышеуказанные команды не останавливают Zookeeper и kill -9 также не может остановить, возможно, это зомби-процесс. Вы можете проверить этот вопрос и ответ как остановить такие процессы, если это так.

Из корневого каталога zookeeper (cd ~/zookeeper-3.4.6) выполните следующую команду

sudo bin/zkServer.sh stop

bin/zookeeper-server-stop.sh не работал на Mac. И новый процесс порождался при попытке убить процесс, даже с SIGTERM.

Вместо, остановить ZooKeeper с помощью Homebrew:

$ brew services stop zookeeper

Лично я установил переменную окружения $ KAFKA_HOME - это облегчает мне жизнь. Если вы это сделаете, вы можете создать псевдоним для такого рода вещей следующим образом:

alias zstop='sudo $KAFKA_HOME/bin/zookeeper-server-stop.sh'

А затем вы можете просто ввести

zstop

Или, если вы установили в /opt/kafka например, вы можете просто ввести:

sudo /opt/kafka/bin/zookeeper-server-stop.sh

Мне также нравится создавать псевдоним для запуска zookeeper, вот две строки, которые я добавил в нижнюю часть своего ~/.bashrc файл:

alias zstart='$KAFKA_HOME/bin/zookeeper-server-start.sh $KAFKA_HOME/config/zookeeper.properties'
alias zstop=''$KAFKA_HOME/bin/zookeeper-server-stop.sh'