Apache Doris通过supervisor进行进程管理(挂了自启)

Apache Doris通过supervisor进行进程管理(挂了自启)

一、概述

Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。它是通过fork/exec的方式把这些被管理的进程当作supervisor的子进程来启动,这样只要在supervisor的配置文件中,把要管理的进程的可执行文件的路径写进去即可。也实现当子进程挂掉的时候,父进程可以准确获取子进程挂掉的信息的,可以选择是否自己启动和报警。supervisor还提供了一个功能,可以为supervisord或者每个子进程,设置一个非root的user,这个user就可以管理它对应的进程。

二、安装supervisor

2.1.yum方式安装supervisor

$ yum -y install epel-release
$ yum -y install supervisor

2.2.修改supervisor配置

$ vi /etc/supervisord.conf

minfds=655350                 ; (min. avail startup file descriptors;default 1024)
minprocs=65535                ; (min. avail process descriptors;default 200)

2.3.启动supervisor

$ systemctl enable supervisord # 开机自启动
$ systemctl start supervisord # 启动supervisord服务
$ systemctl status supervisord # 查看supervisord服务状态

#重启supervisord
$ systemctl restart supervisord

三、配置BE自启

3.1.创建和编辑BE自启文件 doris_be.ini

$ vi /etc/supervisord.d/doris_be.ini

doris_be.ini内容

[program:doris_be]      
process_name=%(program_name)s      
directory=/usr/local/doris/be
command=sh /usr/local/doris/be/bin/start_be.sh
autostart=true
autorestart=true
user=root
numprocs=1
startretries=3
stopasgroup=true
killasgroup=true
startsecs=5

3.2.加载doris_be.ini

#刷新配置
$ supervisorctl update

#查看状态
$ supervisorctl status

如果失败状态,可以先停止be,然后通过supervisorctl启动be

$ sh /usr/local/doris/be/bin/stop_be.sh
$ supervisorctl start doris_be

#通过supervisorctl停止be
$ supervisorctl stop doris_be

#通过supervisorctl重启be
$ supervisorctl restart doris_be

#启动所有受supervisor管理的应用
$ supervisorctl start all 

四、配置FE自启

4.1.创建和编辑FE自启文件 doris_fe.ini

vi /etc/supervisord.d/doris_fe.ini

doris_fe.ini内容

[program:doris_fe]
environment = JAVA_HOME="/usr/lib/jvm/java-1.8.0"
process_name=%(program_name)s                       ;进程名称
directory=/usr/local/doris/fe                       ;工作目录
command=sh /usr/local/doris/fe/bin/start_fe.sh      ;运行的命令
autostart=true                                      ;自动开启
autorestart=true                                    ;自动重启
user=root                                           ;用户
numprocs=1                                          ;进程数
startretries=3                                      ;启动重试次数
stopasgroup=true                                    ;是否停止子进程
killasgroup=true                                    ;是否杀死子进程
;startsecs=10                                       ;启动10秒后,如果还是运行状态才认为进程已经启动

4.2.加载doris_fe.ini

#刷新配置
$ supervisorctl update

#查看状态
$supervisorctl status

如果失败状态,可以先停止fe,然后通过supervisorctl启动fe

$ sh /usr/local/doris/fe/bin/stop_fe.sh
$ supervisorctl start doris_fe

五、配置broker自启

5.1.创建和编辑Broker自启文件 doris_broker.ini

vi /etc/supervisord.d/doris_broker.ini

doris_broker.ini内容

[program:doris_broker]
environment = JAVA_HOME="/usr/lib/jvm/java-1.8.0"
process_name=%(program_name)s                       ;进程名称
directory=/usr/local/doris/apache_hdfs_broker                       ;工作目录
command=sh /usr/local/doris/apache_hdfs_broker/bin/start_broker.sh      ;运行的命令
autostart=true                                      ;自动开启
autorestart=true                                    ;自动重启
user=root                                           ;用户
numprocs=1                                          ;进程数
startretries=3                                      ;启动重试次数
stopasgroup=true                                    ;是否停止子进程
killasgroup=true                                    ;是否杀死子进程
;startsecs=10                                       ;启动10秒后,如果还是运行状态才认为进程已经启动

5.2.加载doris_broker.ini

#刷新配置
$ supervisorctl update

#查看状态
$supervisorctl status

如果失败状态,可以先停止broker,然后通过supervisorctl启动broker

$ sh /usr/local/doris/apache_hdfs_broker/bin/stop_broker.sh
$ supervisorctl start doris_broker

六、相关参考

原文地址:https://www.cnblogs.com/huligong1234/p/15521214.html