使用supervisor启动hbase

2017-03-29 13:52


管理进程是一件麻烦的事情,有时候进程因为内存被其他进程抢占,导致程序崩溃,又没有好的办法来解决,那么就涉及到如何让它挂了自动启动的问题,supervisor就是一款这样的软件,在做之前,请确保你需要让进程自动启动,否则可能重启机器也无法解决进程占用IO等导致ssh无法连接的问题。下面介绍如何安装与配置,以及如何查看页面状态。

  • 安装supervisor

    yum install supervisor -y

  • ambari按照pid文件来检测进程是否启动,为了使ambari检测进程状态,要保证进程号的文件名称一样,HBASE_IDENT_STRING会在进程启动文件中用作变量去命名进程pid文件

    echo 'export HBASE_IDENT_STRING=hbase'>>/etc/init.d/supervisord

  • 编辑/etc/supervisord.conf

    [unix_http_server]

    file=/tmp/supervisor.sock;

    [supervisord]

    http_port=/var/tmp/supervisor.sock;

    http_port=0.0.0.0:9001  ; (alternately, ip_address:port specifies AF_INET)

    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)

    [rpcinterface:supervisor]

    supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

    [supervisorctl]

    serverurl=unix:///var/tmp/supervisor.sock ; use a unix:// URL  for a unix socket

    [program:regionserver]

    command=bash /usr/hdp/current/hbase-regionserver/bin/hbase-daemon.sh --config /usr/hdp/current/hbase-regionserver/conf foreground_start regionserver

    process_name=%(program_name)s

    numprocs=1

    ;directory=/usr/hdp/current/hbase-regionserver/bin/

    autostart=true

    autorestart=true

    startretries=3

    exitcodes=0,2

    stopsignal=INT

    user=hbase

    stdout_logfile=regionserver_out.log

    stdout_logfile_maxbytes=1MB

    stdout_logfile_backups=10

    stdout_capture_maxbytes=1MB

    stderr_logfile=test_err.log

    stderr_logfile_maxbytes=1MB

    stderr_logfile_backups=10

    stderr_capture_maxbytes=1MB

  • 如果还要启动其他程序直接在最后面一行添加即可,比如

    [program:wpiweibo]

    command=/usr/jdk64/jdk1.8.0_40/bin/java -jar /home/luoweimin/wpiindex/WPIIndex-1.0-SNAPSHOT.jar

    numprocs=1

    user=luoweimin

    stdout_logfile=wpiweibo.out

    stderr_logfile=wpiweibo.err

  • 启动

    /etc/init.d/superversiord start

  • 由于我监听了9001端口,你可以使用ip:9001去监控页面查看状态,启停服务