生產(chǎn)環(huán)境中碰到一個問題是spark的history server日志滿了
org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.hdfs.protocol.FSLimitException$MaxDirectoryItemsExceededException): The directory item limit of /user/spark/applicationHistory is exceeded: limit=1048576 items=1048576
我使用的spark的版本是1.6.0-cdh5.11.0,我去查看了下日志清理功能是打開的,spark.history.fs.cleaner.enabled = true,同時spark.history.fs.cleaner.interval 和spark.history.fs.cleaner.maxAge使用的是默認值。
但是日志清理功能卻沒有生效,最早的日志一直到4月份的,最終導(dǎo)致了這問題,存儲的日志數(shù)量超過所允許的最大值,導(dǎo)致spark job最后失敗。
放狗搜了一下,發(fā)現(xiàn)有不少類似的問題,感覺可能是個bug,看到一個答案說是把默認的時間改下,按照這個思路我試了下,縮短了時間,然后重啟了服務(wù)器后,發(fā)現(xiàn)日志確實被清理了。
但是又發(fā)現(xiàn)了另外一個問題,有些運行時失敗的spark job的日志沒有被清理掉,名稱是這種的/user/spark/applicationHistory/application_1536720747876_0437_1.inprogress。 這個數(shù)量也不少,只能去Spark的JIRA查詢下這問題,發(fā)現(xiàn)不少給這個問題提PR的,fix的版本是2.3.0,我們暫時是沒法用了。JIRA的地址SPARK-21571。