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

Spark Standalone集群Client部署模式异常:任务仅在Master执行且UI无应用显示

排查Spark Standalone Client模式任务未分布式执行&UI无应用的问题

咱们一步步拆解你的问题:你搭了1主2从的Spark Standalone集群,用Client模式提交Scala版WordCount,结果任务只在Master节点跑,连Master UI里都看不到Driver和应用的影子,本来预期是任务能分发到Worker的Executor上执行,还能在UI里监控。下面是几个核心排查点和解决建议:

1. 先补全你的提交命令

你给出的提交命令明显不完整,缺少应用jar包的路径,正确的spark-submit格式应该是这样的:

./bin/spark-submit --class WordCount --master spark://master-host:7077 --deploy-mode client /绝对路径/到你的wordcount.jar [输入文件路径] [输出结果路径]

如果没指定jar包,Spark没法把任务分发到Worker节点,只能在提交节点(也就是Master)本地执行。另外注意--deploy-mode的规范写法是小写的client(虽然Spark可能兼容大写,但尽量按官方规范来)。

2. 确认Worker节点有可用资源

  • 打开Master的UI页面(默认是http://master-host:8080),检查两个Worker节点的Cores和Memory是否有空闲。如果Worker的资源已经被占满,Spark会自动把任务放到Master本地执行。
  • 去Worker节点的日志目录(默认在SPARK_HOME/work下)看看,有没有连接Master失败、资源不足这类报错信息。

3. 检查Driver的可访问性

Client模式下,Driver是跑在提交节点(Master)上的,Worker节点必须能访问到Driver的地址,才能汇报任务状态、拉取任务。你要确认:

  • Master的hostname(master-host)能被所有Worker节点解析,要是解析有问题,直接换成Master的IP地址试试。
  • 可以在提交命令里手动指定spark.driver.host参数,确保Worker能找到Driver:
--conf spark.driver.host=你的Master节点IP

要是Worker连不上Driver,任务根本没法分发,只能在Master本地跑,UI自然也看不到应用信息。

4. 确认输入文件的存储位置

如果你的WordCount读的是Master本地的文件(比如file:///本地路径/文件.txt),而Worker节点上没有这个文件,Spark会默认把任务放到Driver所在的Master节点执行,不会分发到Worker。要实现分布式执行,要么把文件放到HDFS这类分布式存储里,要么确保所有Worker节点的本地路径都有这个文件。

5. 查看日志找线索

  • 提交任务时,看看Master终端里的Driver日志,有没有Executor启动失败、资源申请被拒绝的提示。
  • 去Master节点的SPARK_HOME/logs目录搜你的应用ID,看看有没有应用注册失败的记录。

6. 验证集群网络连通性

在每个Worker节点上,执行telnet master-host 7077和telnet master-host 4040(Driver的默认UI端口),确认这些端口是通的。如果不通,检查防火墙规则,确保Master和Worker之间的这些端口是开放的。

按照上面的步骤逐一排查,大概率能找到问题——最常见的情况就是提交命令缺了jar包,或者Worker没法访问Driver的地址。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:09:17