在Azure集群模式Spark环境中,如何通过SSH访问Spark图形化Web UI?
解决方案:在本地图形化浏览器访问Azure VM上的Spark UI
没问题,我来给你几个实用的方案,轻松解决命令行浏览器体验差的问题,直接用本地的图形化浏览器查看Spark的Web UI:
方案1:SSH本地端口转发(最安全推荐)
这是最常用也最安全的方式,通过SSH把Azure VM上的4040端口映射到你本地机器的某个端口,这样就能用本地浏览器直接访问了。
操作步骤:
Linux/macOS终端:直接执行下面的命令,把本地的8080端口(你也可以换成其他未被占用的端口)映射到Azure VM的localhost:4040:
ssh -L 8080:localhost:4040 your-vm-username@your-azure-vm-public-ip输入VM的密码或者用SSH密钥登录后,保持这个终端窗口打开,然后在本地浏览器输入
http://localhost:8080就能看到熟悉的Spark UI了。Windows用户(用PuTTY):
- 打开PuTTY,在Session里填入VM的公共IP和SSH端口(默认22)
- 左侧导航到 Connection > SSH > Tunnels
- 在「Source port」里填本地端口(比如8080),「Destination」里填
localhost:4040 - 点击「Add」,然后回到Session页面保存配置,点击「Open」登录VM
- 本地浏览器访问
http://localhost:8080即可
方案2:Azure NSG开放端口(便捷但需注意安全)
如果你不想每次都用SSH转发,可以直接在Azure的网络安全组(NSG)里开放4040端口,这样就能直接通过VM的公共IP访问Spark UI。
操作步骤:
- 登录Azure门户,找到你的VM对应的NSG
- 添加入站安全规则:
- 源:建议设置为你的本地公网IP(限制访问范围,避免暴露给所有人)
- 源端口范围:*
- 目标:VM的私有IP或者「Any」
- 目标端口范围:4040
- 协议:TCP
- 动作:允许
- 优先级:设置一个比默认规则高的数值(比如100)
- 保存规则后,在本地浏览器输入
http://your-azure-vm-public-ip:4040就能访问了
注意:这种方式会把4040端口暴露到公网,务必限制源IP,或者在不需要访问的时候及时关闭这个规则,避免安全风险。
补充:Spark History Server(查看已完成作业)
如果需要查看已完成的Spark作业,你可以配置Spark History Server,同样可以用上面的两种方式(端口转发或开放端口)来访问它的UI(默认端口18080),这样就算作业结束了也能查看详细日志和统计信息。
内容的提问来源于stack exchange,提问作者Vzzarr
相关产品推荐
相关产品推荐

