环境信息:
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成为僵尸进程?此问题暂时未得到答案,后续继续研究,知道答案的朋友欢迎留言讨论或者告知
本文记录了在CentOS6.5环境下,HDFS集群DataNode节点异常,进程无法正常关闭的问题排查与解决过程。通过分析发现,异常的DataNode进程成为僵尸进程,最终通过停止其父进程Balancer解决了问题。
2097

被折叠的 条评论
为什么被折叠?



