supervisor管理flink

异常现象

       supervisor启动flink后便无法再次管理flink supervisor无法删除flink的java进程

       启动命令方式

       

     start-cluster.sh脚本中有一些shell配置指令 不单单是一条启动指令

     flink安装包中自带启动和停止的脚本

 

   要求supervisor管理flink的时候不能使用默认的管理方式

supervisor自定义配置

     supervisord中当有一个命令这反过来又产生另一个过程,supervisord无法杀死它
     当我运行这个从supervisord并尝试从supervisorctl停止,只有顶级的过程就会被杀死,但不是实际的Java进程
     选项stopasgroup=true应在supervisord程序段被设置为停止,不仅父进程,而且子进程

     启动flink后主进程会自动创建很多的子进程

   

   所以使用supervisord终止flink进程的时候不能使用supervisor默认只杀掉子进程中的主进程的方式 而是需要杀掉整个子进程的进程组

   flink被supervisor成功启停

   

 flink前后台启动方式设置

   前台启动   "$FLINK_BIN_DIR"/jobmanager.sh start-foreground

    

 后台启动结果

    

前后台启动方式进程查询结果

     前台方式只启动一个进程

     

     后台方式启动了七个进程

    

   后台方式启动调试

   

  前台方式启动调试

   

 解决方式

        

        

        supervisor可以完全正常启动flink服务

        flink启动异常

           

           修改flink.ini

               添加enviroment变量   

              

             

[program:flink]
directory=/app/taishi/flink/flink-1.11.1/
command=/app/taishi/flink/flink-1.11.1/bin/start-cluster.sh
environment=JAVA_HOME="/app/taishi/jdk"
process_name=%(program_name)s
autostart=true
startsecs=60
user=admin
stopasgroup=true
redirect_stderr=true
stdout_logfile_maxbytes=10MB
stdout_logfile_backups=10
stdout_logfile=/app/taishi/logs/flink_supervisord.log
原来的ini
[program:flinkcluster]
directory=/app/taishi/flink/flink-1.11.1/
command=/app/taishi/flink/flink-1.11.1/bin/start-cluster.sh
environment=JAVA_HOME="/app/taishi/jdk",CLASSPATH=".:/app/taishi/jdk/lib/dt.jar:/app/taishi/jdk/lib/tools.jar:/app/taishi/jdk/lib/libsigar-amd64-linux.so",PATH="/app/taishi/jdk/bin:%(ENV_PATH)s"
priority=220
autostart=true
autorestart=false
stopasgroup=true
killasgroup=true
process_name=%(program_name)s
user=root
redirect_stderr=true
stdout_logfile_maxbytes=10MB
stdout_logfile_backups=10
stdout_logfile=/app/taishi/logs/flinkcluster_supervisord.log
最新的ini

systemd管理flink服务

         

         

vi /usr/lib/systemd/system/flinktask.service
[Unit]
Description=flinktask
After=network.target
[Service]
Type=simple
User=root
ExecStart=bash /home/secure/flink/flink-1.17.1/bin/taskmanager.sh start-foreground
Restart=on-failure
[Install]
WantedBy=multi-user.target
flinktask.service
vi /usr/lib/systemd/system/flinkjob.service
[Unit]
Description=flinkjob
After=network.target
[Service]
Type=simple
User=root
ExecStart=bash /home/secure/flink/flink-1.17.1/bin/jobmanager.sh start-foreground
Restart=on-failure
[Install]
WantedBy=multi-user.target
flinkjob.service

 

服务启动

posted @ 2020-11-16 15:51  不懂123  阅读(491)  评论(0编辑  收藏  举报