学习 Spark 2(三):Spark History Server

SparkContext 启动之后,默认在 4040 端口启动 Spark UI Web 服务,可以查看:

  • Job、Stage 和 Task 信息
  • 环境信息
  • Executor 信息
  • SQL 和 Streaming 信息

Spark History Server(以下简称:SHS),提供了 Web 服务,通过应用事件日志查看历史。

配置

编辑 conf/spark-defaults.conf 文件,以下是一些常用配置项:

属性名 默认值 含义
spark.history.fs.logDirectory file:/tmp/spark-events 应用事件日志所在目录 URL 地址。推荐事件日志存放在 HDFS 上。
spark.history.retainedApplications 50 缓存中保留的应用数量。缓存未命中则需要从磁盘中重新加载(非常昂贵的操作)。
spark.history.fs.cleaner.enabled false 是否启用 SHS 周期清理事件历史功能。强烈建议开启。
spark.history.fs.cleaner.interval 1d 清理周期。
spark.history.fs.cleaner.maxAge 7d 保留的最长时间。

配置示例:

spark.history.retainedApplications  20  
spark.history.fs.logDirectory  hdfs://NAMENODE/tmp/spark/applicationHistory  
spark.history.fs.cleaner.enabled  true  
spark.history.fs.cleaner.maxAge  2d  

服务启停

启动服务:

sh sbin/start-history-server.sh  

停止服务:

sh sbin/stop-history-server.sh  

应用配置

Spark 应用需要启动事件日志并指定时间目录地址:

  • spark.eventLog.enabled 启动事件日志
  • spark.eventLog.dir 指定时间日志目录地址

代码示例:

SparkSession.builder()  
  .enableHiveSupport()
  .config("spark.eventLog.enabled", true)
  .config("spark.eventLog.dir", "hdfs://NAMENODE/tmp/spark/applicationHistory")
  .config("spark.yarn.historyServer.address", "http://NAMENODE:18080")
  .getOrCreate()

参考