问题背景:
在以stanalone方式部署的spark环境中,以cluster方式提交application后,过了半天发现在web页面driver上stdout和stderr上的日志全部都没有了,stdout中显示error: invalid log director /app/spark/...
问题原因:
由于在spark-env.sh中配置了每个worker清理日志的时间,即SPARK_WORKER_OPTS='-Dspark.worker.cleanup.enabled=true -Dspark.worker.cleanup.interval=1800 -Dspark.worker.cleanup.appDataTtl=60',
上述3个参数的含义为:
spark.worker.cleanup.enabled:是否开启自动清理
spark.worker.cleanup.interval:清理worker上old application周期,每隔多长时间清理一次,单位为秒
spark.worker.cleanup.appDataTtl:保留最近多长时间的数据
由于设置了worker自动清理日志的时间,导致定时将worker下面的Completed Drivers和Completed Applications中的日志都删除了。
解决方法:
考虑磁盘空间,合理的将清理周期设置大一点