做spark应用时,每提交一个应用就会多出sparksubmit进程
$ jps
3552 SparkSubmit
2164 SparkSubmit
3223 SparkSubmit
5358 Jps
当我们想kill掉这个进程时,
$ kill -9 3552
$ kill -9 2164
$ kill -9 3223
再次用jps查看进程,发现SparkSubmit进程杀不掉
$ jps
3552 SparkSubmit
2164 SparkSubmit
3223 SparkSubmit
5358 Jps
原来是因为SparkSubmit是一个僵死(Zombie)进程,用如下命令查看僵死进程
$ ps aux | grep 'Z'
具体操作如下:
$ ps aux | grep 'Z'
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
hadoop 2164 0.5 0.0 0 0 pts/0 Z 09:01 0:24 [java] <defunct>
hadoop 3223 0.3 0.0 0 0 pts/0 Z 09:26 0:11 [java] <defunct>
hadoop 3552 0.6 0.0 0 0 pts/0 Z 09:37 0:16 [java] <defunct>
hadoop 5341 0.0 0.0 14224 968 pts/0 S+ 10:19 0:00 grep --color=auto Z
$ jps
3552 SparkSubmit
2164 SparkSubmit
3223 SparkSubmit
5358 Jps
$ ps aux | grep 'Z'
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
hadoop 2164 0.5 0.0 0 0 pts/0 Z 09:01 0:24 [java] <defunct>
hadoop 3223 0.3 0.0 0 0 pts/0 Z 09:26 0:11 [java] <defunct>
hadoop 3552 0.6 0.0 0 0 pts/0 Z 09:37 0:16 [java] <defunct>
hadoop 5370 0.0 0.0 14224 936 pts/0 S+ 10:21 0:00 grep --color=auto Z
通过以上查询只有3个僵死进程PID是固定的,就是jps的看到的三个SparkSubmit进程(2164/3553/3223)
那如何kill掉僵死(Zombie)进程呢?
上网查询有的说可以重启Ubuntu,或者等待很长时间后内核将其清除
如果不想重启Ubuntu,又要马上清除僵死(Zombie)进程怎么办呢?
方法是有的:找到僵死进程的父进程,然后kill掉父进程即可
操作如下:
查询僵死2146进程的进程关系,发现2164的父进程是2148
$ pstree -p -s 2164
systemd(1)───sshd(958)───sshd(2109)───sshd(2128)───bash(2131)───python3(2148)───java(2164)
kill掉父进程
$ kill -9 2148
再次查看僵死进程,没有了2164进程
$ ps aux | grep 'Z'
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
hadoop 3223 0.3 0.0 0 0 pts/0 Z 09:26 0:11 [java] <defunct>
hadoop 3552 0.5 0.0 0 0 pts/0 Z 09:37 0:16 [java] <defunct>
hadoop 5450 0.0 0.0 14224 936 pts/0 S+ 10:26 0:00 grep --color=auto Z
[1] Killed pyspark (wd: ~)
(wd now: ~/soft/spark)
再kill掉其他两个僵死进程
$ pstree -p -s 3223
systemd(1)───sshd(958)───sshd(2109)───sshd(2128)───bash(2131)───python3(3207)───java(3223)
$ kill -9 3207
$ pstree -p -s 3552
systemd(1)───sshd(958)───sshd(2109)───sshd(2128)───bash(2131)───python3(3537)───java(3552)
$ kill -9 3537
$ ps aux | grep 'Z'
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
hadoop 5522 0.0 0.0 14224 1000 pts/0 S+ 10:28 0:00 grep --color=auto Z
参考:https://www.cnblogs.com/gisvito/p/3757317.html
完成!enjoy it!