spark运行任务的日志一直没太大关注,原因是硬盘资源充足,除非任务出错时才去看一下,但没有清理这些日志的习惯。直到最近遇到的一个问题是,硬盘资源严重缺乏,不得不需要定时去清理日志。
第一时间去看下spark本身的配置,是否支持定时清理日志的选项,毕竟spark那么成熟,相信很多人都面临过这样的问题。从spark-env.sh里面看到SPARK_WORKER_OPTS和SPARK_HISTORY_OPTS这两个选项下手,问下了google后,明确SPARK_WORKER_OPTS选择有自动清理任务日志的功能。
先在spark-env.sh中增加下述内容:
SPARK_WORKER_OPTS="-Dspark.worker.cleanup.enabled=true -Dspark.worker.cleanup.interval=1800 -Dspark.worker.cleanup.appDataTtl=3600"
然后对spark进行重启,清理日志的任务已实现。