2015-12-29 19 views
9

Czy Kafka ma oficjalny sposób (np. Skrypt init.d), aby uruchomić Kafkę przy uruchomieniu systemu?Jak automatycznie uruchomić Kafkę po uruchomieniu systemu w Ubuntu 14.04?

Jedyna oficjalna metoda zacząć Kafka Widziałem to:

nohup ~/kafka/bin/kafka-server-start.sh ~/kafka/config/server.properties > ~/kafka/kafka.log 2>&1 & 

Próbowałem użyć @reboot zadanie crontab -e jednak nie zacząć Kafka. Niektórzy ludzie mają zwyczaj również napisany init.d

Istnieje również zwyczaj init.d skrypty dostępne (np one, two, three) jednak wszystkie one są różne i nie jestem na tyle obeznany z init.d zrozumieć, który z nich, jeśli jakieś do wdrożenia.

Jak uruchomić Kafkę przy starcie systemu?

Odpowiedz

10

Oto jak skonfigurować Kafka uruchomi się automatycznie na Ubuntu 14.04:

sudo su 
cp -R ~/kafka_2.11-0.10.0.1 /opt 
ln -s /opt/kafka_2.11-0.10.0.1 /opt/kafka 

Skopiuj poniższy skrypt init /etc/init.d/kafka:

DAEMON_PATH=/opt/kafka/ 
PATH=$PATH:$DAEMON_PATH/bin 

# See how we were called. 
case "$1" in 
    start) 
     # Start daemon. 
     echo "Starting Zookeeper"; 
     nohup $DAEMON_PATH/bin/zookeeper-server-start.sh -daemon /$DAEMON_PATH/config/zookeeper.properties 2> /dev/null && \ 
     echo "Starting Kafka"; 
     nohup $DAEMON_PATH/bin/kafka-server-start.sh -daemon /$DAEMON_PATH/config/server.properties 2> /dev/null 
     ;; 
    stop) 
     # Stop daemons. 
     echo "Shutting down Zookeeper"; 
     pid=`ps ax | grep -i 'org.apache.zookeeper.server' | grep -v grep | awk '{print $1}'` 
     if [ -n "$pid" ] 
      then 
      kill -9 $pid 
     else 
      echo "Zookeeper was not Running" 
     fi 
     echo "Shutting down Kafka"; 
     pid=`ps ax | grep -i 'kafka.Kafka' | grep -v grep | awk '{print $1}'` 
     if [ -n "$pid" ] 
      then 
      kill -9 $pid 
     else 
      echo "Kafka was not Running" 
     fi 
     ;; 
    restart) 
     $0 stop 
     sleep 2 
     $0 start 
     ;; 
    status) 
     pid=`ps ax | grep -i 'org.apache.zookeeper.server' | grep -v grep | awk '{print $1}'` 
     if [ -n "$pid" ] 
      then 
      echo "Zookeeper is Running as PID: $pid" 
     else 
      echo "Zookeeper is not Running" 
     fi 
     pid=`ps ax | grep -i 'kafka.Kafka' | grep -v grep | awk '{print $1}'` 
     if [ -n "$pid" ] 
      then 
      echo "Kafka is Running as PID: $pid" 
     else 
      echo "Kafka is not Running" 
     fi 
     ;; 
    *) 
     echo "Usage: $0 {start|stop|restart|status}" 
     exit 1 
esac 

exit 0 

Bądź usługę Kafka z te polecenia:

chmod 755 /etc/init.d/kafka 
update-rc.d kafka defaults 

Teraz powinieneś być w stanie uruchomić i zatrzymać usługę kafka w ten sposób:

sudo service kafka start 
sudo service kafka status 
sudo service kafka stop 

Jeśli chcesz później usunąć usługę Kafka, uruchom update-rc.d -f kafka remove.

+0

Hej, dziękuję za odpowiedź. Szukam właśnie tego. Chociaż wydaje mi się, że moja wersja Ubuntu i wersji Kafki jest nieco późniejsza, a maszyna, której zlecono mi to zadanie, nie ma w moim domu elementu "kafkakafka_2.11-0.10.0.1" (~) informator. Czy to oznacza być katalogiem instalacyjnym Kafki, gdziekolwiek on jest? Wystarczy podwójne sprawdzenie, ponieważ nie zainstalowałem tu osobiście Kafki ani nie ustawiłem serwera, ale mam za zadanie zautomatyzować Kafkę przy starcie. Jestem też stosunkowo nowy w systemie Unix. Dzięki! – ThePartyTurtle

+1

Tak, to katalog, który otrzymasz po pobraniu i wyodrębnieniu pliku tgz z https://kafka.apache.org/downloads –

+0

Gotcha, dziękuję! – ThePartyTurtle