查YARN 日志聚合目录 /tmp/logs 占用大小
执行查看大小:hdfs dfs -du -h /tmp/logs
(1)日志聚合日志目录由 yarn-site.xml
yarn.nodemanager.remote-app-log-dir 配置的目录存放
(2)在yarn-default.xml查看目前配置:
yarn.log-aggregation.retain-seconds=604800(在HDFS上聚集的日志最多保存多长时间,单位秒,7天)
yarn.log-aggregation.retain-check-interval-seconds=86400(检查聚合日志保留情况任务执行间隔时间,1天)
修改参数后,需要重启nodemanager
官网解释:https://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-common/yarn-default.xml
补充:
yarn.nodemanager.remote-app-log-dir 和yarn.nodemanager.log-dirs 的区别?
yarn.nodemanager.log-dirs : 存储在每个 NM 节点本地磁盘,存储的是应用运行时的容器日志(stdout/stderr/syslog),是临时的,作业跑完即清理,可配多个目录(提升本地 I/O 吞吐)
yarn.nodemanager.remote-app-log-dir : 存储在远端文件系统(HDFS / 其余云存储),存储的是应用结束后聚合上传的集中日志,可长期保留(靠 yarn.log-aggregation.retain-seconds 管保留),只能配置一个远端根目录
HDFS 回收站 .Trash
查看命令
hdfs dfs -du -h /user/*/.Trash
清理规则调整(core-site.xml):
fs.trash.interval=1440 保留 1 天 (检查点删除前的分钟数,单位是分钟,0=禁用回收站)
fs.trash.checkpoint.interval (检查点间隔分钟数,需 ≤ fs.trash.interval)
NameNode 上的 Trash Emptier 线程定期创建检查点并清理超期文件,客户端 hdfs dfs -rm 删除时读取它来决定是否移入 .Trash,修改参数后需要重启Namenode
官网解释: https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/core-default.xml
Spark History EventLog(spark-defaults.conf)
spark.history.fs.cleaner.enabled(默认 false,true开启自动清理)
spark.history.fs.cleaner.interval(默认 1d):How often the cleaner checks for files to delete.
spark.history.fs.cleaner.maxAge(默认 7d):Job history files older than this will be deleted.
JobHistoryServer 不参与日志删除,无需重启
spark Monitoring 文档
https://spark.apache.org/docs/latest/monitoring.html
服务日志清理
守护进程(NameNode/DataNode/ResourceManager/NodeManager 等)自己的运行日志,清理机制是 log4j 的滚动+保留份数,而不是 Hadoop 配置项
最好的办法是编写脚本,使用命令周期删除
(1)存储地址
这些日志写在本地磁盘(目录由 hadoop-env.sh 的 HADOOP_LOG_DIR 决定)
(2)删除参数
Hadoop 2.x(log4j 1.x)— set MaxBackupIndex:保留 N 个、超出删最旧
MaxBackupIndex 决定在删除最旧备份前保留的备份文件最大数量(正整数)。默认值为 1
https://logging.apache.org/log4j/1.x/apidocs/org/apache/log4j/RollingFileAppender.html
Hadoop 3.x(log4j2)— DefaultRolloverStrategy 与 Delete
DefaultRolloverStrategy 的 max 属性,默认值N= 7,达到 N 个删最旧
Delete action + IfLastModified
https://logging.apache.org/log4j/2.x/manual/appenders/rolling-file.html