美文网首页Spark & Flink
Spark History Server

Spark History Server

作者: Alex90 | 来源:发表于2019-03-14 14:50 被阅读0次

    在运行 Spark 应用程序的时候,Driver 会提供一个 WebUI 用于展现应用程序的运行信息,但是这个服务是伴随 Spark 应用程序的运行周期的,当应用程序运行完成后,将无法查看应用程序的历史记录。

    Spark history server 就是为了应对这种情况而产生的,通过配置,Spark 应用程序在运行成之后,将应用程序的运行信息写入指定目录,Spark history server 可以将这些信息加载并以 Web 或命令行的方式供用户浏览。

    配置 Spark History Server

    在 Spark 的 /conf 目录下,基于 spark-defaults.conf.template 复制创建 spark-defaults.conf

    # Spark Master Host:Port  
    spark.master                     spark://hadoop.master:7077  
    # 是否记录作业产生的事件或者运行状态(job,stage 等使用内存等信息)
    spark.eventLog.enabled           true  
    # 如果记录作业产生的事件或者运行状态,则将事件写入什么位置  
    spark.eventLog.dir               hdfs://hadoop.master:9000/user/hadoop/sparkevtlog  
    # history http 的监听端口号,通过 http://hadoop.master:${spark.history.ui.port} 访问  
    spark.history.ui.port            18080  
    

    启动 Spark History Server

    使用如下命令启动 History Server

    > ./start-history-server.sh
    
    starting org.apache.spark.deploy.history.HistoryServer, logging to ../logs/spark-hadoop-org.apache.spark.deploy.history.HistoryServer-1-hadoop.out
    

    启动后访问 http://${spark.master}:{spark.history.ui.port}

    History Server 参数

    spark-env.sh 配置

    通过设置 SPARK_HISTORY_OPTS 的方式

    export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=7777 -Dspark.history.retainedApplications=3"
    

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

    spark.history.ui.port
    默认值:18080
    history-server 的 Web 端口

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

    spark.history.fs.cleaner.enabled
    默认值:false
    指定 history 日志是否定时清除,一定要设置成 true。

    spark.history.fs.cleaner.interval
    默认值:1d
    指定 history 日志定时清除的周期,默认一天

    spark.history.fs.cleaner.maxAge
    默认值:7d
    指定 history 日志生命周期,默认七天

    spark-defaults.conf 配置

    每个配置一行

    spark.eventLog.enabled  true
    spark.eventLog.compress true
    

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

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

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


    spark.history.fs.logDirectoryspark.eventLog.dir 指定目录的区别?

    spark.eventLog.dir:日志记录的位置
    spark.history.fs.logDirectory:页面展示指定路径下的信息
    所以如果要显示最新的全部的日志,这两个参数需要指定同一个目录


    相关文章

      网友评论

        本文标题:Spark History Server

        本文链接:https://www.haomeiwen.com/subject/rhoqmqtx.html