SparkCore:History-Server/监控,查看程序历史运行日志

文章目录

官网:Monitoring and Instrumentation
http://spark.apache.org/docs/2.4.2/monitoring.html

1、History-Server介绍

当你执行spark-shell --master local[2]的时候
默认情况下,每个SparkContext在端口4040上启动一个web UI;如果多个sparkcontext在同一主机上运行,它们将从4040(4041、4042等)开始的连续端口启动web UI。
但是应用程序执行完成后都会sc.stop,此时再次刷新web UI发现再也无法代开,如果想继续监控未完成的作业,那么就需要History-Server,通过相应的配置,Spark应用程序在运行完应用程序之后,将应用程序的运行信息写入指定日志记录目录,而 history server可以将这些运行信息装载并以web的方式供用户浏览。

2、History-Server配置

[hadoop@vm01 ~]$ hdfs dfs -mkdir /spark-logs
[hadoop@vm01 conf]$ vi spark-defaults.conf

spark.eventLog.enabled  true
spark.eventLog.dir  hdfs://vm01:9000/spark-logs

#所有spark.history.* 开头的参数,都是配置在SPARK_HISTORY_OPTS选项中
#SPARK_HISTORY_OPTS="-Dx=y",x代表参数,y代表值
[hadoop@vm01 conf]$ vi spark-env.sh
SPARK_HISTORY_OPTS="-Dspark.history.fs.logDirectory=hdfs://vm01:9000/spark-logs"

启动

[hadoop@vm01 sbin]$ ./start-history-server.sh 

vm01:18080
SparkCore:History-Server/监控,查看程序历史运行日志

3、验证

打开spark-shell,然后在浏览器同时打开vm01:4040vm01:18080界面,然后sc.stop验证结果。

scala> val a = sc.textFile("hdfs://192.168.137.130:9000/test.txt")
scala> a.flatMap(line=>line.split(" ")).map((_,1)).reduceByKey(_+_).collect

此时两个都是可以查看的
SparkCore:History-Server/监控,查看程序历史运行日志

scala> sc.stop

此时vm01:4040刷新web后是无法访问的,但是vm01:18080界面依然可以继续监控
SparkCore:History-Server/监控,查看程序历史运行日志

4、History-Server参数

#指定刷新日志的时间,更短的时间可以更快检测到新的任务以及任务执行情况,但过快会加重服务器负载
spark.history.fs.update.interval  默认值10秒

#UI上最多显示的作业的数目
spark.history.ui.maxApplication 默认值intMaxValue

#history-server的网页UI端口号
spark.history.ui.port  默认值18080

#参数指定history-server的日志是否定时清除,true为定时清除,false为不清除
spark.history.fs.cleaner.enabled 默认为false

#日志检查间隔,默认每一天会检查一下日志文件
spark.history.fs.cleaner.interval 默认值为1d

#日志生命周期,当检查到某个日志文件的生命周期为7d时,则会删除该日志文件
spark.history.fs.cleaner.maxAge 默认值为7d

#这个参数设置history-server产生的日志文件是否使用压缩,true为使用,false为不使用
spark.eventLog.compress 默认值为false

#压缩格式
spark.io.compress.codec 默认值lz4

#在内存中保存Application历史记录的个数,如果超过这个值,旧的应用程序信息将被删除
spark.history.retainedApplications   默认值:50

5、REST API

后缀添加什么想看什么具体信息,看官网:REST API
http://spark.apache.org/docs/2.4.2/monitoring.html#rest-api

打开REST API可以访问<server-url>:18080/api/v1,和history-server网页内容一样。<server-url>值得是启用history-server服务的机器ip。
<server-url>:18080/api/v1/applications就是查看所有的作业信息。
<server-url>:18080/api/v1/applications/?status=completed 就是查看所有已经完成的作业的信息
SparkCore:History-Server/监控,查看程序历史运行日志

上一篇:Spark学习之路 (十五)SparkCore的源码解读(一)启动脚本[转]


下一篇:如何将List对象转换为JavaDStream Spark?