2017-01-23 5 views
2

Apache KafkaがインストールされているUbuntu 16.04マシンがあります。現在、私はそれは、次の内容でstart_kafka.shスクリプトを使用して、完璧に動作させることができます。今すぐApache Kafkaでスーパーバイザを使用できません

JMX_PORT=17264 KAFKA_HEAP_OPTS="-Xms1024M -Xmx3072M" /home/kafka/kafka_2.11-0.10.1.0/bin/kafka-server-start.sh -daemon /home/kafka/kafka_2.11-0.10.1.0/config/server.properties 

、私はそれが失敗し、マシンを再起動した直後に開始すべきプロセスを自動的に再起動するようsupervisorを使用したいです。問題は私がsupervisorカフカを開始できないことです。

私はpipを使用してsupervisorをインストールし、/etc/supervisord.confでこの設定ファイルを置い:

; Supervisor config file. 
; 
; For more information on the config file, please see: 
; http://supervisord.org/configuration.html 

[unix_http_server] 
file=/tmp/supervisor.sock ; (the path to the socket file) 

[supervisord] 
logfile=/tmp/supervisord.log ; (main log file;default $CWD/supervisord.log) 
logfile_maxbytes=50MB  ; (max main logfile bytes b4 rotation;default 50MB) 
logfile_backups=10   ; (num of main logfile rotation backups;default 10) 
loglevel=info    ; (log level;default info; others: debug,warn,trace) 
pidfile=/tmp/supervisord.pid ; (supervisord pidfile;default supervisord.pid) 
nodaemon=false    ; (start in foreground if true;default false) 
minfds=1024     ; (min. avail startup file descriptors;default 1024) 
minprocs=200     ; (min. avail process descriptors;default 200) 

; the below section must remain in the config file for RPC 
; (supervisorctl/web interface) to work, additional interfaces may be 
; added by defining them in separate rpcinterface: sections 
[rpcinterface:supervisor] 
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface 

[supervisorctl] 
serverurl=unix:///tmp/supervisor.sock ; use a unix:// URL for a unix socket 

[program:kafka] 
command=/home/kafka/kafka_2.11-0.10.1.0/start_kafka.sh ; the program (relative uses PATH, can take args) 
;process_name=%(program_name)s ; process_name expr (default %(program_name)s) 
startsecs=10     ; # of secs prog must stay up to be running (def. 1) 
startretries=3    ; max # of serial start failures when starting (default 3) 
;autorestart=unexpected  ; when to restart if exited after running (def: unexpected) 
;exitcodes=0,2     ; 'expected' exit codes used with autorestart (default 0,2) 
stopsignal=TERM    ; signal used to kill process (default TERM) 
stopwaitsecs=180    ; max num secs to wait b4 SIGKILL (default 10) 
stdout_logfile=NONE  ; stdout log path, NONE for none; default AUTO 
;environment=A="1",B="2"  ; process environment additions (def no adds) 

私はカフカを起動しようとすると、次のエラーが発生します。

/tmp/supervisord.log
# supervisorctl start kafka 
kafka: ERROR (spawn error) 

およびSupervisorログ( )は、これを含みます:

2017-01-23 22:10:24,532 INFO spawned: 'kafka' with pid 21311 
2017-01-23 22:10:24,536 INFO exited: kafka (exit status 127; not expected) 
2017-01-23 22:10:25,542 INFO spawned: 'kafka' with pid 21312 
2017-01-23 22:10:25,559 INFO exited: kafka (exit status 127; not expected) 
2017-01-23 22:10:27,562 INFO spawned: 'kafka' with pid 21313 
2017-01-23 22:10:27,567 INFO exited: kafka (exit status 127; not expected) 
2017-01-23 22:10:30,571 INFO spawned: 'kafka' with pid 21314 
2017-01-23 22:10:30,576 INFO exited: kafka (exit status 127; not expected) 
2017-01-23 22:10:31,578 INFO gave up: kafka entered FATAL state, too many start retries too quickly 

-daemonフラグを既に削除してみましたが、これはsupervisorと一緒に使用しましたが、成功していないと言わなければなりません。

何が起こっているのか考えている人はいますか?

+0

'コマンド= /ホーム/カフカ/ kafka_2.11-0.10.1.0/start_kafka.sh'?なぜそれは 'config/server.properties'を含んでいないのですか? – amethystic

答えて

1

私は最終的に監督は2回交換してカフカでの作業を取得するために管理:スーパーバイザは

  • を管理するために、非daemozinedプロセスを必要とするよう明示的にJavaのパスを定義し、-daemonフラグなし

    • 展開カフカスーパーバイザ設定ファイル

    これは動作設定です。

    start_kafka.sh

    JMX_PORT=17264 KAFKA_HEAP_OPTS="-Xms1024M -Xmx3072M" /home/kafka/kafka_2.11-0.10.1.0/bin/kafka-server-start.sh /home/kafka/kafka_2.11-0.10.1.0/config/server.properties 
    

    supervisord.conf

    [unix_http_server] 
    file=/var/run/supervisor.sock ; (the path to the socket file) 
    chmod=0700      ; sockef file mode (default 0700) 
    
    [supervisord] 
    logfile=/var/log/supervisor/supervisord.log ; (main log file;default $CWD/supervisord.log) 
    pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid) 
    childlogdir=/var/log/supervisor   ; ('AUTO' child log dir, default $TEMP) 
    
    ; the below section must remain in the config file for RPC 
    ; (supervisorctl/web interface) to work, additional interfaces may be 
    ; added by defining them in separate rpcinterface: sections 
    [rpcinterface:supervisor] 
    supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface 
    
    [supervisorctl] 
    serverurl=unix:///var/run/supervisor.sock ; use a unix:// URL for a unix socket 
    
    ; The [include] section can just contain the "files" setting. This 
    ; setting can list multiple files (separated by whitespace or 
    ; newlines). It can also contain wildcards. The filenames are 
    ; interpreted as relative to this file. Included files *cannot* 
    ; include files themselves. 
    
    [include] 
    files = /etc/supervisor/conf.d/*.conf 
    
    [program:kafka] 
    command=/home/kafka/kafka_2.11-0.10.1.0/start_kafka.sh 
    directory=/home/kafka/kafka_2.11-0.10.1.0 
    user=root 
    autostart=true 
    autorestart=true 
    stdout_logfile=/var/log/kafka/stdout.log 
    stderr_logfile=/var/log/kafka/stderr.log 
    environment = JAVA_HOME=/usr/lib/jvm/java-8-oracle 
    
  • 2

    https://github.com/miguno/wirbelsturmからhttps://github.com/miguno/puppet-kafkaまでのスーパバイザ設定ファイルがあります。主な違いはkafka-server-start.shではなくkafka-run-class.shを使用していることです。

    さまざまなパスを更新して、設定と一致するようにする必要があります。 /opt/kafka/bin/kafka-run-class.sh/home/kafka/kafka_2.11-0.10.1.0/bin/kafka-run-class.shに変更する必要があります。

    [program:kafka-broker] 
    command=/opt/kafka/bin/kafka-run-class.sh kafka.Kafka /opt/kafka/config/server.properties 
    numprocs=1 
    numprocs_start=0 
    priority=999 
    autostart=true 
    autorestart=true 
    startsecs=10 
    startretries=999 
    exitcodes=0,2 
    stopsignal=INT 
    stopwaitsecs=120 
    stopasgroup=true 
    directory=/ 
    user=kafka 
    redirect_stderr=false 
    stdout_logfile=/var/log/supervisor/kafka-broker/kafka-broker.out 
    stdout_logfile_maxbytes=20MB 
    stdout_logfile_backups=5 
    stderr_logfile=/var/log/supervisor/kafka-broker/kafka-broker.err 
    stderr_logfile_maxbytes=20MB 
    stderr_logfile_backups=10 
    environment=JMX_PORT=9999,KAFKA_GC_LOG_OPTS="-Xloggc:/var/log/kafka/daemon-gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps",KAFKA_HEAP_OPTS="-Xms512M -Xmx512M -XX:NewSize=200m -XX:MaxNewSize=200m",KAFKA_JMX_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false",KAFKA_JVM_PERFORMANCE_OPTS="-server -XX:+UseCompressedOops -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+CMSScavengeBeforeRemark -XX:+DisableExplicitGC -Djava.awt.headless=true",KAFKA_LOG4J_OPTS="-Dlog4j.configuration=file:/opt/kafka/config/log4j.properties",KAFKA_OPTS="-XX:CMSInitiatingOccupancyFraction=70 -XX:+PrintTenuringDistribution" 
    
    関連する問題