Как автоматически запустить Kafka при запуске системы в Ubuntu 14.04?

есть ли у Кафки официальный способ (например, init.D скрипт) запустить Кафку при запуске системы?

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

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

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

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

как запустить Kafka при запуске системы?

1 ответов


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

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

# See how we were called.
case "" 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 }'`
        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 }'`
        if [ -n "$pid" ]
          then
          kill -9 $pid
        else
          echo "Kafka was not Running"
        fi
        ;;
  restart)
         stop
        sleep 2
         start
        ;;
  status)
        pid=`ps ax | grep -i 'org.apache.zookeeper.server' | grep -v grep | awk '{print }'`
        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 }'`
        if [ -n "$pid" ]
          then
          echo "Kafka is Running as PID: $pid"
        else
          echo "Kafka is not Running"
        fi
        ;;
  *)
        echo "Usage:  {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.