2015-12-29 2 views
9

Кафка имеет официальный способ (например, сценарий init.d), чтобы запустить Kafka при запуске системы?Как автоматически запускать Kafka при запуске системы в Ubuntu 14.04?

Единственный официальный способ запуска Кафку я видел:

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

Я пытался использовать @reboot задачу crontab -e однако не стал Кафку. Некоторые люди также писали обычай init.d

Есть также пользовательские init.d скрипты доступны (например, one, two, three), однако все они разные, и я не достаточно хорошо знаком с init.d, чтобы понять, какой из них, если таковые имеются.

С чего начать Kafka при запуске системы?

ответ

10

Вот как настроить Кафка для автоматического запуска на 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 

Скопируйте следующий сценарий инициализации в /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 

Сделать услугу Кафка с эти команды:

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

Теперь вы должны быть в состоянии начать и остановить службу Кафки, как это:

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

Если вы хотите позже удалить сервис Kafka, запустите update-rc.d -f kafka remove.

+0

Эй, спасибо за ваш ответ. Я хочу сделать именно это. Хотя моя версия Ubuntu и версия Kafka появляются немного позже, и машине, на которой мне было поручено это сделать, похоже, что в моем доме нет элемента «kafkakafka_2.11-0.10.0.1» (~) каталог. Это означает, что это только каталог установки Kafka, где бы это ни было? Просто дважды проверяйте, так как я лично не установил Kafka здесь или не встал на сервер, но мне просто поручено автоматизировать Kafka при запуске. Я также относительно новичок в Unix. Благодаря! – ThePartyTurtle

+1

Да, это каталог, который вы получаете после загрузки и извлечения файла tgz с https://kafka.apache.org/downloads –

+0

Gotcha, спасибо! – ThePartyTurtle

Смежные вопросы