背景
在Yarn上開啟了日志聚合, 并設(shè)置了過期清除的時(shí)間, 但是沒有生效, 導(dǎo)致在HDFS上聚合后的日志數(shù)據(jù)過大(/tmp/logs/hdfs/logs
), 造成磁盤空間不足
解決
前提: 配置了Jobhistory Server, 并處于啟動(dòng)中
方案1: 更改聚合日志的目錄權(quán)限
Jobhistory Server使用的是mapred用戶
hadoop fs chown -R mapred:supergroup /tmp/logs/hdfs
方案2: 更改角色操作的用戶為hdfs
過程
配置不生效
原本懷疑是Flink的log4j的配置問題, 錯(cuò)誤日志太多導(dǎo)致無法回滾(這個(gè)問題在低版本的logback有出現(xiàn)過), 事實(shí)驗(yàn)證并不是.
那么是否是Yarn運(yùn)行中的application出現(xiàn)了異常, 而異常重啟的次數(shù)配置的比較大, 導(dǎo)致不斷啟動(dòng)新的container, 通過模擬的確會(huì)出現(xiàn)這個(gè)問題, 在Yarn NodeManager的/yarn/container-logs
可看到, 但是該文件會(huì)在application停止之后進(jìn)行清除, 所以也可以暫時(shí)忽略這個(gè)問題
不斷重試
既然Yarn提供了這個(gè)清理的配置, 按理來說應(yīng)該是支持的, 可能是使用的方式不對(duì)或者某個(gè)配置沒開啟, 探索一番一致, 清理日志的角色叫Jobhistory Server, 那么把添加角色后再啟動(dòng)應(yīng)該就可以了
Jobhistory Server
啟動(dòng)了之后, 發(fā)現(xiàn)還是沒有對(duì)HDFS上的
/tmp/logs/hdfs/logs
進(jìn)行清理, 查看Jobhistory Server的日志, 發(fā)現(xiàn)了操作該目錄和權(quán)限相關(guān)的報(bào)錯(cuò), 給目錄授權(quán)后清理操作正常