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

如何访问EMR上Spark standalone脚本的Spark UI?

解决EMR主节点Local模式PySpark应用的Spark UI访问与History Server记录问题

一、修复SSH隧道访问Spark UI的问题

Local模式下Spark Driver默认仅绑定EC2内网IP,导致SSH隧道无法映射访问,可通过以下方式解决:

1. 临时启动参数配置

运行PySpark脚本时,显式指定Driver绑定所有网卡地址:

spark-submit --master local[*] \
  --conf spark.driver.host=0.0.0.0 \
  --conf spark.driver.bindAddress=0.0.0.0 \
  spark_test.py

2. 永久配置修改

修改EMR主节点的Spark默认配置文件/etc/spark/conf/spark-defaults.conf,添加以下两行:

spark.driver.host 0.0.0.0
spark.driver.bindAddress 0.0.0.0

后续所有Local模式的Spark应用都会自动绑定所有地址。

3. 正确配置SSH隧道

在本地终端执行以下命令,将本地4040端口映射到EMR主节点的4040端口:

ssh -i "你的密钥文件.pem" -L 4040:localhost:4040 hadoop@<EMR主节点公网IP>

完成后直接在本地浏览器访问http://localhost:4040即可打开Spark UI。

二、让Spark History Server捕获Local模式应用的信息

Local模式应用默认不会生成事件日志,需配置日志存储路径让History Server识别:

1. 临时启动参数配置

运行脚本时添加事件日志相关配置:

spark-submit --master local[*] \
  --conf spark.eventLog.enabled=true \
  --conf spark.eventLog.dir=s3://<你的S3存储桶路径>/spark-events \
  spark_test.py

注:也可使用HDFS路径,如hdfs:///user/spark/applicationHistory,需确保路径存在且Spark进程有读写权限。

2. 永久配置修改

在/etc/spark/conf/spark-defaults.conf中添加:

spark.eventLog.enabled true
spark.eventLog.dir s3://<你的S3存储桶路径>/spark-events

之后重启Spark History Server:

sudo systemctl restart spark-history-server

再次运行Local模式应用后,History Server即可加载并展示该应用的历史信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 19:32:22