失常的一天遇到了两次磁盘的报警,两个不同的挂载点的空间满了,记录一下解决的过程。
Spark 长期目录问题
根目录下的空间 du -h --max-depth=1 /
发现占用空间最大的目录是 /tmpdu --max-depth=1 /tmp | sort -rn
去查看这个目录下的文件
发现是 spark 工作的长期目录占用的。
查看 spark 的 conf 下的配置,发现 spark 没有配置专们的长期文件目录,文件默认的会写到 /tmp 下, 生成随机目录 (mktemp)。
解决:
1. 通过 ps -ef | grep 'spark'
找到对应的过程 id,再 grep 过程 id 找到最终的父过程 id,能够找到过程的启动者,确认数据可删除一部分删除就好了。
2. 在 spark 的目录下新建 log 的目录,配置临时文件到这个目录保障根目录失常。
3./tmp 的主动清理工夫距离缩短绝对也会好点。
调度零碎 job log
同一台机器上跑了调度零碎的 client,client 上会启 hive client 或者 beeline,在工作的通用启动脚本里会生成每个工作的 log 文件,第二次报警看到的最大空间占用目录是 job log 目录。
发现最早的 log 文件曾经是 18 年的了,决定果决删除这部分数据,rm -rf ll | awk '{print $8,$9}' | grep '2018' | awk '{print $2}'
提醒 argument list too long,
换一种写法分批去删除ll | awk '{print $8,$9}' | grep '2018' | awk '{print $2}' | xargs -n 1000 rm -rf