spark会提供一个web ui,使用者可以通过此ui对查看作业的相关信息,例如:stages 和 tasks的调度、RDD使用内存情况、环境变量 以及 executors的运行信息。但是当作业执行完就没办法在查看相关的信息。但我们我可以通过Spark’s history server查看这些以及执行完毕的作业信息。
1、如何开启?
1.1、修改 spark-defaults.conf ,增加如下配置
#开启eventLog
spark.eventLog.enabled true
#设置eventLog目录
spark.eventLog.dir hdfs://hadoop001:9000/spark-logs
1.2、修改 spark-env.sh,增加如下配置
#设置需要被展示的eventLog目录
SPARK_HISTORY_OPTS="-Dspark.history.fs.logDirectory= hdfs://hadoop001:9000/spark-logs"
1.3 开启Spark's history server
./sbin/start-history-server.sh
备注:当 Applications 退出的时候,没有调用sc.stop的时候,就算Applications执行成功,也不会显示到 completed applications 的标签,所以写代码的时候一定要调用sc.stop!!!
2、比较重要的几个参数
spark.eventLog.compress //是否对日志进行压缩,默认 false
spark.io.compression.codec //指定压缩类型
spark.history.fs.update.interval //心跳间隔,默认 10S
spark.history.fs.cleaner.enabled //是否自动清理History Server的历史日志,默认 false
spark.history.fs.cleaner.interval //多久检查一次History Server的历史日志,默认 1d
spark.history.fs.cleaner.maxAge //清楚多久前的日志,默认 7d