發現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
