2015-12-29 39 views
9

Kafkaは、システム起動時にKafkaを開始するための正式な方法(例えばinit.dスクリプト)を持っていますか?Ubuntu 14.04でシステム起動時にKafkaを自動的に起動する方法は?

私が見てきたカフカを開始するための唯一の公式の方法は次のとおりです。

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

私はそれはカフカを開始しませんでしたがcrontab -e@rebootタスクを使用しようとしました。 、一部の人々はまた、彼らはすべて異なっているが使用可能なカスタムのinit.dスクリプト(例えばonetwothree)もあります

init.dのカスタムを書いていると私はどちらを理解するのinit.dで十分慣れていませんよもしあれば実装する。

システム起動時にカフカを起動するにはどうすればよいですか?

答えて

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に次のinitスクリプト:

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 

このようにkafkaサービスを開始および停止できるようにする必要があります。

Kafkaサービスを後で削除する場合は、update-rc.d -f kafka removeを実行してください。

+0

お返事ありがとうございます。私はちょうどこれをするために探しています。私のUbuntuバージョンとKafkaバージョンは少し後になってしまいましたが、これを実行するように指示されたマシンは私の家(〜)に "kafkakafka_2.11-0.10.0.1"ディレクトリ。これはKafkaのインストールディレクトリであることを意味していますか?私は個人的にここにカフカをインストールしたりサーバを立ち上げたりしていないので、ちょうど2回チェックしていますが、起動時にカフカを自動化する任務があります。私はUnixにも比較的新しいです。ありがとう! – ThePartyTurtle

+1

はい、https://kafka.apache.org/downloadsからtgzファイルをダウンロードして解凍した後に取得するディレクトリです。 –

+0

Gotcha、ありがとう! – ThePartyTurtle

関連する問題