使用Spark REST API提交PySpark作业时遇连接拒绝问题求助
Spark REST API提交作业报错:Connection refused(端口6066)
环境信息:
- 系统:Ubuntu
- PySpark版本:3.5.0
- Spark Master端口:7077
- Spark UI地址:
http://arbind-sha:8080/ - 作业Jar路径:
/home/arbind/spark/arbind/practice/masterslave1.jar
执行的curl提交命令:
curl -X POST http://Arbind-SHa:6066/v1/submissions/create --header "Content-Type:application/json;charset=UTF-8" --data '{ "action" : "CreateSubmissionRequest", "appArgs" : [ "" ], "appResource" : "/home/arbind/spark/arbind/practice/masterslave1.jar", "clientSparkVersion" : "3.5.0", "environmentVariables" : { "SPARK_ENV_LOADED" : "1" }, "mainClass" : "Test", "sparkProperties" : { "spark.jars" : "/home/arbind/spark/arbind/practice/masterslave1.jar", "spark.app.name" : "Test", "spark.eventLog.enabled": "true", "spark.submit.deployMode" : "cluster", "spark.master" : "spark://Arbind-SHa:7077" } }'
收到的错误:
curl: (7) Failed to connect to Arbind-SHa port 6066 after 0 ms: Connection refused
排查与解决步骤
- 启用Spark REST服务:Spark的REST API(默认端口6066)默认未开启,需在启动Spark Master时添加配置。可以修改
spark-defaults.conf加入spark.master.rest.enabled=true,或者启动Master时指定参数:./sbin/start-master.sh --conf spark.master.rest.enabled=true - 验证端口监听:用以下命令检查6066端口是否被监听:
如果无输出,说明REST服务未启动,需重新配置启动。netstat -tulpn | grep 6066 # 或 ss -tulpn | grep 6066 - 统一主机名大小写:Linux主机名区分大小写,命令中用的
Arbind-SHa和UI的arbind-sha不一致,建议统一使用小写的arbind-sha,避免主机名解析错误。 - 检查防火墙设置:确认Ubuntu防火墙是否开放6066端口,执行开放命令:
也可临时关闭防火墙测试:sudo ufw allow 6066/tcpsudo ufw disable。 - 确认版本一致性:确保提交命令中的
clientSparkVersion(3.5.0)和Spark Master的版本完全一致,版本不匹配可能导致连接失败。
内容的提问来源于stack exchange,提问作者arbind Sah
相关产品推荐
相关产品推荐

