Ubuntu中如何在系统启动时自动启动Kafka?

2024-01-01

Kafka 是否有官方方式(例如 init.d 脚本)在系统启动时启动 Kafka?

我见过的启动Kafka的唯一官方方法是:

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

我尝试过使用@reboot任务在crontab -e然而它并没有启动卡夫卡。有些人还写了自定义的init.d

还有可用的自定义 init.d 脚本(例如one https://github.com/edwardcapriolo/kafka-rpm/blob/master/SOURCES/kafka.init, two https://gist.github.com/superscott/a1c67871cdd54b0c8693, three https://github.com/deric/kafka-packaging/blob/master/conf/init.debian)但是它们都是不同的,我对 init.d 不够熟悉,无法理解要实现哪一个(如果有的话)。

如何在系统启动时启动Kafka?


以下是我如何配置 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.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

使用以下命令创建 kafka 服务:

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

现在您应该能够像这样启动和停止 kafka 服务:

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

如果您想稍后删除 Kafka 服务,请运行update-rc.d -f kafka remove.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ubuntu中如何在系统启动时自动启动Kafka? 的相关文章

随机推荐