
默认情况下,Spark程序运行完毕关闭窗口之后,就无法再查看运行记录的Web UI(4040)了,但通过 HistoryServer 可以提供一个服务, 通过读取日志文件, 使得我们可以在程序运行结束后, 依然能够查看运行过程。本篇博客,博主就为大家带来在Spark上配JobHistoryServer的详细过程。
在 Spark-shell 没有退出之前, 我们是可以看到正在执行的任务的日志情况:http://hadoop102:4040. 但是退出 Spark-shell 之后, 执行的所有任务记录全部丢失.
所以需要配置任务的历史服务器, 方便在任何需要的时候去查看日志.
在配置之前,如果spark服务还在启动中请先停止!
[bigdata@hadoop002 spark]$ sbin/stop-all.sh 
spark-default.conf文件, 开启 Log[bigdata@hadoop002 conf]$ mv spark-defaults.conf.template spark-defaults.conf
//在spark-defaults.conf文件中, 添加如下内容:
[bigdata@hadoop002 conf]$ vim spark-defaults.conf
spark.eventLog.enabled true
spark.eventLog.dir hdfs://hadoop002:9000/spark-job-log
注意:
hdfs://hadoop201:9000/spark-job-log 目录必须提前存在, 名字随意
[bigdata@hadoop002 spark]$ hadoop fs -mkdir /spark-job-log
spark-env.sh文件,添加如下配置[bigdata@hadoop002 conf]$ vim spark-env.sh
export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=18080 -Dspark.history.retainedApplications=30 -Dspark.history.fs.logDirectory=hdfs://hadoop002:9000/spark-job-log"参数描述:
spark.eventLog.dir:Application在运行过程中所有的信息均记录在该属性指定的路径下;
spark.history.ui.port=18080 WEBUI访问的端口号为18080
spark.history.fs.logDirectory=hdfs://hadoop002:9000/spark-job-log 配置了该属性后,在start-history-server.sh时就无需再显式的指定路径,Spark History Server页面只展示该指定路径下的信息
spark.history.retainedApplications=30指定保存Application历史记录的个数,如果超过这个值,旧的应用程序信息将被删除,这个是内存中的应用数,而不是页面上显示的应用数。

// 可依次操作 也可分发
xsync spark-defaults.conf
xsync spark-env.sh// 1. 需要先启动 HDFS
[bigdata@hadoop002 hadoop-2.7.2]$ sbin/start-dfs.sh
// 2. 启动spark
[bigdata@hadoop002 spark]$ sbin/start-all.sh
// 2. 然后再启动:
[bigdata@hadoop002 spark]$ sbin/start-history-server.sh
ui 地址: http://hadoop002:18080

bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://hadoop002:7077 \
--executor-memory 1G \
--total-executor-cores 6 \
./examples/jars/spark-examples_2.11-2.1.1.jar 100

本次的分享就到这里了