hive大量死进程导致的磁盘空间满

问题: 由于问题无法复现,记录问题解决过程。

登录服务器执行脚本,发现提示磁盘空间满,指向的目录是/dev/mapper/centos-root。

这个其实是根目录(这里是恢复后的显示截图了,之前是100%)

 排查发现在/home/hadoop/bigdata/hive/iotmp/下面存在大的临时文件,但是文件没几个,于是删除大文件。

然后继续检查 du -h --maxdeph=1 发现磁盘空间仍然是100%。

但是左右排查没发现其他大文件,于是百度搜磁盘空间是否显示不准确的问题,然后得到答案。

 使用 lsof -n | grep deleted 命令查看还有哪些死进程未释放,结果发现大量以下hive的子进程,都是相同的进程号20058.

 于是 kill 20058。

再次查询 lsof -n | grep deleted,发现没有上面那么多进程,还剩余几个进程。

 

这时候在查看磁盘空间,显示正常了。

--------------------------------------------------------------------

补充:

杀死上面的hive进程后,发现hive的连接服务也被杀死了,也就是hive在执行任务时产生了大量日志导致磁盘满的。

后面发现mysql在启动后也有这样的deleted进程,kill后,会将mysql的进程给杀死,所以一般没有故障不要轻易杀进程。

作者:尤灯塔
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
原文地址:https://www.cnblogs.com/30go/p/15080099.html