登录 |  注册 |  繁體中文


Spark History Server配置使用

分类: Spark 颜色:橙色 默认  字号: 阅读(2258) | 评论(0)

Spark History Server的作用

在运行Spark应用程序的时候,driver会提供一个webUI用于展现应用程序的运行信息,但是该webUI随着应用程序的完成而关闭端口。也就是说,Spark Application运行完(成功/失败)后,将无法查看Application的历史记录。Spark history server就是为了应对这种情况而产生的,通过配置,Spark应用程序在运行完应用程序之后,将应用程序的运行信息写入指定目录,而Spark history server可以将这些运行信息装载并以web的方式供用户浏览(假如Application运行的事件日志信息已经记录下来)

配置&使用Spark History Server

1 spark-defaults.conf 增加如下内容

spark.eventLog.enabled true #允许记录事件日志
spark.eventLog.dir hdfs://master:9000/log/spark #事件日志存放位置,要提前建好目录
spark.eventLog.compress true #是否启用压缩

2 启动start-history-server.sh

./sbin/start-history-server.sh  hdfs://master:9000/log/spark  #需要指定日志的位置,也可以直接配置在spark-env.sh里面

3 web查看 http://master:18080

4 history server相关的配置参数描述

以spark.history开头的需要配置在spark-env.sh中的SPARK_HISTORY_OPTS,以spark.eventLog开头的配置在spark-defaults.conf 

  1. spark.history.updateInterval 
    默认值:10 
    以秒为单位,更新日志相关信息的时间间隔

  2. spark.history.retainedApplications 
    默认值:50 
    内存中保存Application历史记录的个数,如果超过这个值,旧的应用程序信息将被删除,当再次访问已被删除的应用信息时需要重新构建页面。

  3. spark.history.ui.port 
    默认值:18080 
    HistoryServer的web端口

  4. spark.history.kerberos.enabled 
    默认值:false 
    是否使用kerberos方式登录访问HistoryServer,对于持久层位于安全集群的HDFS上是有用的,如果设置为true,就要配置下面的两个属性

  5. spark.history.kerberos.principal 
    默认值:用于HistoryServer的kerberos主体名称

  6. spark.history.kerberos.keytab 
    用于HistoryServer的kerberos keytab文件位置

  7. spark.history.ui.acls.enable 
    默认值:false 
    授权用户查看应用程序信息的时候是否检查acl。如果启用,只有应用程序所有者和spark.ui.view.acls指定的用户可以查看应用程序信息;否则,不做任何检查

  8. spark.eventLog.enabled 
    默认值:false 
    是否记录Spark事件,用于应用程序在完成后重构webUI

  9. spark.eventLog.dir 
    默认值:file:///tmp/spark-events 
    保存日志相关信息的路径,可以是hdfs://开头的HDFS路径,也可以是file://开头的本地路径,都需要提前创建

  10. spark.eventLog.compress 
    默认值:false 
    是否压缩记录Spark事件,前提spark.eventLog.enabled为true,默认使用的是snappy

5 spark-env.sh history服务配置示例

export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=18080 -Dspark.history.retainedApplications=3 -Dspark.history.fs.logDirectory=hdfs://hadoop:9000/directory"

6 常见问题1:spark.history.fs.logDirectory和spark.eventLog.dir区别

spark.eventLog.dir:Application在运行过程中所有的信息均记录在该属性指定的路径下;

spark.history.fs.logDirectory:指定Spark History Server需要读取信息的路径,可以和spark.eventLog.dir不一样;

 




姓 名: *
邮 箱:
内 容: *
验证码: 点击刷新 *   

回到顶部