异常现象

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

       启动命令方式

       

supervisor管理flink_子进程

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

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

 

supervisor管理flink_flink_02

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

supervisor自定义配置

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

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

   

supervisor管理flink_子进程_03

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

   flink被supervisor成功启停

   

supervisor管理flink_flink_04

 flink前后台启动方式设置

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

    

supervisor管理flink_子进程_05

 后台启动结果

    

supervisor管理flink_flink_06

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

     前台方式只启动一个进程

     

supervisor管理flink_JAVA_07

     后台方式启动了七个进程

    

supervisor管理flink_JAVA_08

   后台方式启动调试

   

supervisor管理flink_flink_09

  前台方式启动调试

   

supervisor管理flink_子进程_10

 解决方式

        

supervisor管理flink_JAVA_11

        

supervisor管理flink_子进程_12

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

        flink启动异常

           

supervisor管理flink_flink_13

 

           修改flink.ini

               添加enviroment变量   

              

supervisor管理flink_JAVA_14

             

supervisor管理flink_子进程_15


[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