You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何访问Kubernetes上运行中Spark作业的SparkUI页面

Kubernetes环境下访问运行中Spark作业SparkUI的操作方法

下面是三种常用的可行方案,你可以根据自己的集群场景选择:

方案一:端口转发(临时访问首选,无需额外集群配置)

这是本地调试最常用的方法,不需要修改集群现有配置,操作步骤如下:

  • 第一步,获取运行中的Spark Driver Pod名称:
    执行命令:kubectl get pods -n <你的作业所在命名空间> | grep spark-driver
  • 第二步,执行端口转发命令,将本地端口和Driver Pod的SparkUI端口绑定:
    执行命令:kubectl port-forward <上一步拿到的Driver Pod名称> 4040:4040 -n <你的作业所在命名空间>
    如果本地4040端口被其他服务占用,可以修改本地端口,比如kubectl port-forward <Pod名称> 8080:4040,后续访问对应本地端口即可
  • 第三步,打开本地浏览器访问http://localhost:4040(如果你改了本地端口就用你改的端口),即可进入当前运行作业的SparkUI界面

方案二:配置Ingress固定入口(适合长期批量监控场景)

如果你的集群已经部署了Ingress控制器,你可以配置固定的访问入口,不用每次执行端口转发:

  • 提交Spark作业时增加配置,让K8s自动为Driver创建ClusterIP类型的Service:spark.kubernetes.driver.service.type=ClusterIP
  • 编写Ingress规则,将你指定的访问域名/路径指向上述Driver Service的4040端口
  • 配置完成后直接访问你配置的域名即可进入SparkUI

方案三:通过Spark历史服务器访问(已部署历史服务器的集群推荐)

如果你的集群已经搭了Spark历史服务器,直接配置作业事件日志上报即可统一访问所有作业(包括运行中、已结束的)的UI:

  • 提交作业时新增如下配置:
    spark.eventLog.enabled=true
    spark.eventLog.dir=<集群可访问的共享存储路径,比如HDFS路径、PVC挂载路径等>
    
  • 配置完成后,打开历史服务器的Web界面,就能在作业列表里找到正在运行的Spark作业,点击即可跳转对应SparkUI

注意:如果你的Spark作业自定义了SparkUI端口、开启了UI身份认证,需要对应调整上述操作的端口配置、增加身份认证信息后再访问。多租户集群下需要确认你拥有对应命名空间的Pod访问、端口转发等操作权限。

内容的提问来源于stack exchange,提问作者Ofek Hod

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 00:45:08