Spark History Server 没有生效
Spark 提供了 Web UI 来对 Spark 应用进行监控。
每个 SparkContext 会启动一个 web UI,默认是在 4040 端口。它显示了应用相关的有用的信息,包括:
- 一系列的 scheduler stage 和 task
- RDD 大小和内存占用的概要
- 环境信息
- 正在运行的 executor 的一些信息
只要打开 http://:4040 就可以看到该页面。如果有多个 SparkContext 运行在同一个主机上,将会从端口 4040,4041, 4042 依次占用。
不过默认情况下,只在有应用运行期间这些信息才会存在。应用执行完毕,就无法查看了。如果想要在应用执行完毕后还能够查看 web UI,需要在启动应用前设置 spark.eventLog.enabled
为 true。这个选项会将 web UI 的信息进行持久化。
将以下信息写入到 etc/spark-defaults.conf
:
spark.eventLog.enabled true
spark.eventLog.dir file:/home/hadoop/data/spark/spark-logs
spark.history.fs.logDirectory file:/home/hadoop/data/spark/spark-logs
需要注意的是:
spark.eventLog.dir
与spark.history.fs.logDirectory
两个选项的路径必须相同,否则无效。- 设置的路径,比如例中的
/home/hadoop/data/spark/spark-logs
,无论是本地目录,还是 HDFS ,都需要先行创建好在启动应用,如果启动 Spark 时该目录不存在,会报错。
比如在 HDFS 中存储,hdfs dfs -mkdir /eventLog
在 HDFS 中创建目录,然后设置 spark-defaults.conf:
spark.eventLog.enabled true
spark.eventLog.dir hdfs://Master:9000/eventLog
spark.history.fs.logDirectory hdfs://Master:9000/eventLog
参考:
- Monitoring and Instrumentation
- https://hadoophard.wordpress.com/2016/09/07/spark-history-server-not-working/
还没有评论,来说两句吧...