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

Mac开放7077端口供本地Spark访问 解决提交连接拒绝问题

问题根因

直接执行pyspark命令启动的是本地运行模式的交互Shell,并未启动Spark Standalone模式的Master服务。7077是Standalone Master的专属监听端口,对应服务未启动时,无论如何调整端口开放策略都会出现连接拒绝错误,和Mac系统端口拦截无关。

以下操作步骤可实现本地Standalone集群仅本机可访问、局域网设备完全无法连接的效果,无需额外调整防火墙规则:

操作步骤

1. 启动绑定本地回环地址的Standalone Master

执行启动脚本时指定服务绑定127.0.0.1回环地址,从根源上杜绝局域网设备访问:

# Intel芯片Mac执行该命令
/usr/local/opt/apache-spark/libexec/sbin/start-master.sh --host 127.0.0.1
# M系列芯片Mac执行该命令
/opt/homebrew/opt/apache-spark/libexec/sbin/start-master.sh --host 127.0.0.1
  • 参数解释:--host 127.0.0.1强制Master服务仅监听本地回环网卡,所有来自局域网的外部请求会被系统直接丢弃,天然满足访问控制要求。
  • 启动验证:浏览器访问http://localhost:8080,能正常打开Master Web UI即为启动成功。

2. 启动绑定本地回环地址的Worker节点

Master仅负责任务调度,需要启动Worker节点提供计算资源,同样绑定回环地址:

# Intel芯片Mac执行该命令
/usr/local/opt/apache-spark/libexec/sbin/start-worker.sh spark://127.0.0.1:7077 --host 127.0.0.1
# M系列芯片Mac执行该命令
/opt/homebrew/opt/apache-spark/libexec/sbin/start-worker.sh spark://127.0.0.1:7077 --host 127.0.0.1
  • 参数解释:指定Worker向本地127.0.0.1:7077的Master注册,同样不对外暴露任何端口。刷新Master的8080 Web UI,能在Worker列表看到刚启动的节点即为成功。

3. 提交任务验证

使用spark-submit提交PySpark脚本时,必须写全Master地址,不能省略IP部分:

spark-submit --master spark://127.0.0.1:7077 你的PySpark脚本本地路径.py

此时不会再出现连接拒绝错误,任务会正常提交到本地Standalone集群运行。

4. 用完关闭集群

单元测试完成后,执行以下命令关闭Worker和Master进程,避免后台占用资源:

# Intel芯片Mac执行
/usr/local/opt/apache-spark/libexec/sbin/stop-worker.sh
/usr/local/opt/apache-spark/libexec/sbin/stop-master.sh
# M系列芯片Mac执行
/opt/homebrew/opt/apache-spark/libexec/sbin/stop-worker.sh
/opt/homebrew/opt/apache-spark/libexec/sbin/stop-master.sh
注意事项
  • 无参数直接启动的pyspark默认是local[*]本地模式,进程不会监听7077端口,无法作为提交任务的集群端点使用。
  • 无需手动修改Mac的pf防火墙规则开放端口:回环地址127.0.0.1的本地通信默认不会被防火墙拦截,且绑定回环地址的端口不会对局域网开放,不存在安全风险。
  • 禁止将Master/Worker绑定到0.0.0.0地址:该配置会让服务监听所有网卡,同局域网设备可直接访问7077端口提交任务,不符合访问控制要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 04:24:24