Comment démarrer automatiquement Kafka lors du démarrage du système dans Ubuntu 14.04?

Kafka a-t-il un moyen officiel (par exemple un script init.d) pour démarrer Kafka au démarrage du système?

La seule méthode officielle pour démarrer Kafka, j’ai vu est la suivante:

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

J’ai essayé d’utiliser une tâche @reboot dans crontab -e mais elle n’a pas démarré Kafka. Certaines personnes ont également écrit init.d

Il existe également des scripts init.d personnalisés disponibles (par exemple, un , deux , trois ) mais ils sont tous différents et je ne suis pas suffisamment familiarisé avec init.d pour comprendre lequel, le cas échéant, doit être implémenté.

Comment démarrer Kafka au démarrage du système?

Voici comment je configure Kafka pour démarrer automatiquement sur 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 

Copiez le script d’initialisation suivant dans /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 

Faites le service kafka avec ces commandes:

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

Maintenant, vous devriez pouvoir démarrer et arrêter le service kafka comme ceci:

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

Si vous souhaitez supprimer le service Kafka ultérieurement, exécutez update-rc.d -f kafka remove .