spark 查看 job history 日志

本文详细介绍了如何在Spark任务完成后通过web页面查看日志,包括配置历史服务器的相关参数,如更新间隔、保留应用数量、端口号等,并解释了Spark历史服务器的核心配置参数及其作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SPARK_HOME/conf 下:

spark-defaults.conf 增加如下内容

spark.eventLog.enabled true 
spark.eventLog.dir hdfs://master:8020/var/log/spark 
spark.eventLog.compress true

spark-env.sh 增加如下内容

export SPARK_HISTORY_OPTS=”-Dspark.history.ui.port=18080 -Dspark.history.retainedApplications=3 -Dspark.history.fs.logDirectory=hdfs:/master.et2:8020/var/log/spark”

启动start-history-server.sh

SPARK_HOME/conf 下: 执行 ./start-history-server.sh

spark job history web: master:18080

这样在spark任务运行完成之后,就可以通过web页面查看日志了

history server相关的配置参数描述

  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

以spark.history开头的需要配置在spark-env.sh中的SPARK_HISTORY_OPTS,以spark.eventLog开头的配置在spark-defaults.conf 
尊重原创,未经允许不得转载:http://blog.youkuaiyun.com/stark_summer/article/details/46459701

### Spark集群无法访问Web UI解决方案 #### 配置文件设置不当可能导致Web UI不可用 确保`spark-env.sh`配置文件已正确创建并修改。此文件用于指定Spark环境变量和其他重要参数,对于启用和配置Web UI至关重要[^1]。 #### Web UI端口冲突或防火墙阻止连接 默认情况下,Spark应用程序的Web UI监听于4040端口。如果该端口被其他服务占用或者服务器上的防火墙规则阻止外部对该端口的访问,则会导致无法打开Web UI页面。建议检查是否有其他进程占用了4040端口以及确认防火墙设置允许HTTP请求到达这个端口[^2]。 #### 应用程序已完成执行后的Web UI访问问题 值得注意的是,在应用完成后,默认情况下其关联的Web UI也会关闭。为了能够在作业结束后仍然能够浏览历史记录,可以部署独立的历史服务器(History Server)。这使得即使是在驱动器节点上运行的应用已经终止之后也能查看之前任务的信息。启动命令如下所示: ```bash sbin/start-history-server.sh ``` 同时还需要确保HDFS中有适当路径供存储日志数据,并且在`spark-defaults.conf`中指定了这些位置以便让history server知道去哪里查找完成的任务的日志文件。 #### 启动整个Spark集群以验证网络连通性和组件健康状况 当遇到任何关于集群内部通信的问题时,重新启动所有相关服务往往能解决问题。使用提供的脚本可以帮助简化这一过程,例如下面这条指令将会开启所有的守护进程从而恢复正常的操作模式[^3]: ```bash /opt/bigdata/spark-3.2.1-bin-hadoop3.2/sbin/start-all.sh ``` #### 提交带有特定选项的任务来增强调试能力 最后,在提交新的Spark Job时考虑增加一些额外参数帮助定位潜在错误源。比如可以通过调整`--conf spark.ui.port=XXXXX`来自定义UI展示所使用的TCP端口号;或是利用`--verbose`标志获取更详细的输出信息辅助排查故障所在之处[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值