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

Livy始终以local模式运行求助:Spark on Yarn配置无效

解决Livy提交Spark任务强制使用local而非YARN的问题

看起来你已经在Spark和Livy的配置层面都指定了spark.master=yarn,甚至提交请求时也明确传了这个参数,但Livy实际启动Spark任务时还是硬套了local模式——从日志里的spark-submit命令就能看出问题所在。下面是几个针对性的排查和解决思路:

1. 先确认Livy是否真的加载了你的配置

首先得排查Livy服务有没有正确读取到livy.conf里的livy.spark.master = yarn配置:

  • 去看Livy服务的启动日志,找有没有加载配置的相关条目,确认这行配置没有被忽略或者加载失败。
  • 还要注意,要是Livy本身是绑定在本地Spark集群上启动的,可能会有默认配置强制走local,但你已经明确设置了YARN,这点可以重点确认下。

2. 检查配置里的格式错误

日志里的spark-submit命令里有个奇怪的点:--conf ' spark.master=local ',参数值前面多了个空格。这大概率是配置解析时出了问题:

  • 检查spark-defaults.conf里的spark.master配置,确保是spark.master yarn,不要有多余的空格或者格式错误。
  • 排查livy.conf里有没有其他地方偷偷设置了spark.master=local,比如有没有加载额外的配置文件,或者环境变量里的Spark配置覆盖了你的设置。

3. 调整Livy的配置优先级

Livy的配置是有优先级顺序的(从高到低):

  • 提交请求时带的conf参数(就是你CURL里的设置)
  • livy.conf里的livy.spark.*前缀的配置
  • Spark默认配置文件(spark-defaults.conf)

但你的请求参数明显被覆盖了,可能是Livy里有某个配置锁定了master。可以试试:

  • 在livy.conf里明确添加livy.spark.master = yarn,同时检查有没有livy.spark.submitArgs这类参数,里面会不会藏着--master local的内容。
  • 提交请求时,把spark.master的值写成"yarn-client"(对应你设置的deployMode),更明确地指定模式,避免模糊匹配。

4. 验证Spark和Livy的版本兼容性

你用的是Spark 2.0.2,得确认Livy版本和它兼容。早期的Livy版本(比如0.4之前)对Spark 2.x的YARN支持可能有bug,要是你用的Livy版本太老,建议升级到适配Spark 2.0.2的版本试试。

5. 手动测试Spark原生提交命令

先绕开Livy,直接在服务器上跑Spark-submit命令,验证Spark本身能不能正常提交到YARN:

/usr/local/share/spark/spark-2.0.2/bin/spark-submit --name 'MY' --master yarn hdfs:///user/grzegorz/hello-world.py

如果这个命令能正常运行,说明Spark的YARN配置没问题,问题肯定出在Livy的配置或者参数传递环节。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:51:16