linux下僵尸进程的发现与处理(kill -9 无法杀掉的进程)

环境信息:

centos6.5

问题描述:

大数据集群HDFS的DataNode的一个节点down掉,去服务器查看,发现datanode节点还在,打算重新启动该节点的datanode,使用hadoop-daemon.sh stop datanode方式停掉datanode发现执行失败,提示使用kill -9杀掉进程,按照此方式执行,发现进程仍然存在,并未被杀掉

问题排查:

百度一下,kill -9无法杀掉的进程大概率是僵尸进程,使用top命令查看,发现有一个僵尸进程

使用命令:ps aux | grep Z

得到僵尸进程列表:

PID为178744的进程正好为出问题的datanode进程,问题得到证实

问题解决:

查看该进程的父进程ps -aux | grep 178744

看到该进程的父进程是89552即hdfs的balancer进程

停掉balancer进程,不久datanode的进程就被杀掉了

重新启动datanode进程:hadoop-daemon.sh start datanode,HDFS状态正常,问题解决

疑问:

hdfs的balancer进程为什么会导致datanode成为僵尸进程?此问题暂时未得到答案,后续继续研究,知道答案的朋友欢迎留言讨论或者告知

你可能感兴趣的:(linux)