spark歷史任務日志占滿hdfs


發現cloudera上yarn nodeManager告警,提示

 

 進入NodeManager列表,發現一個節點存在告警

 

 

猜測可能是日志寫入失敗,可能是磁盤不夠,進入集群節點列表,查看這個NodeManager所在節點狀態,發現磁盤將要被占滿,因為磁盤很大,猜測應該是hdfs上存儲了什么大文件。

再進入dataNode節點列表,確實是節點占用存儲太大,已經在告警磁盤可用空間不足。

 

登錄到這個dataNode節點服務器:

執行:hadoop fs -du -h /

查看是哪個文件占用過大,如此一直找到最后一個文件夾/user/spark/spark2ApplicationHistory,發現這個文件夾幾乎占滿了磁盤,這個目錄是spark的日志目錄,下面確實有大量文件,每個文件記錄了一個spark任務運行期間日志。

.inprogress結尾的是正在運行任務,但是發現有好多.inprogress結尾的任務在spark任務管理界面並沒有找到對應任務,應該是異常結束的,導致日志后綴沒有去掉。

確認好哪些日志文件可以刪除后,使用:hadoop fs -rm -skipTrash 文件路徑   (-skipTrash請慎用,刪除不經過回收站),刪除有風險,大俠們請做好保護工作,此處只提供方法概不負責,哈哈~

 

刪除后cloudera界面狀態很快恢復。

 

對於這個日志目錄為什么沒有自動刪除,還在找問題和解決方法,后續敬請期待。

 

也可以通過下面腳本檢查指定文件塊占用情況:

#!/bin/bash
file_name="$1"
if [ -z "$file_name" ];then
	echo "Pls input file path"
	exit 1
fi

cat "$file_name"| while read line
do
	hadoop fsck $line -blocks > temp.log
	echo $line >> final.log
	tail -11 temp.log >> final.log
	echo "">temp.log
	echo "Finish check $line"
done

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM