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

Spark Shell执行报错:spark.executor.extraJavaOptions不允许设置Spark选项

Spark配置spark.executor.extraJavaOptions报错解决方案

问题场景

在Windows 11环境下使用Spark 3.5.1运行PySpark程序,通过spark-defaults.conf配置spark.executor.extraJavaOptions参数后,执行spark-submit触发错误,核心错误提示:

java.lang.Exception: spark.executor.extraJavaOptions is not allowed to set Spark options (was '-Dlog4j.configuration=file:log4j.properties -Dspark.yarn.app.container.log.dir=app-logs -Dlogfile.name=HelloSpark'). Set them directly on a SparkConf or in a properties file when using ./bin/spark-submit.

原spark-defaults.conf配置:

spark.executor.extraJavaOptions=-Dlog4j.configuration=file:log4j.properties -Dspark.yarn.app.container.log.dir=app-logs -Dlogfile.name=HelloSpark

原PySpark代码片段:

from pyspark.sql import *
from pyspark import SparkConf
from lib.logger import Log4j

if __name__ == "__main__":
    spark = SparkSession.builder \
            .appName("Hello Spark") \
            .master("local[3")  # 语法错误:缺少闭合方括号
            .getOrCreate()

    logger = Log4j(spark)
    logger.info("Starting HelloSpark")

    # your processing code

    logger.info("Finished HelloSpark")

错误原因

spark.executor.extraJavaOptions仅用于传递JVM级别的参数(如日志配置、自定义系统变量),但该参数中包含了-Dspark.yarn.app.container.log.dir——这是Spark自身的配置项,Spark禁止将Spark配置嵌套在JVM参数中传递,必须直接在配置文件或SparkConf中单独设置。

同时代码中master("local[3")存在语法错误,缺少闭合方括号,会导致SparkSession初始化失败。

解决方案

  1. 拆分配置项:将Spark自身的配置从spark.executor.extraJavaOptions中剥离,单独在spark-defaults.conf中设置:
    修改后的spark-defaults.conf:

    spark.executor.extraJavaOptions=-Dlog4j.configuration=file:log4j.properties -Dlogfile.name=HelloSpark
    spark.yarn.app.container.log.dir=app-logs
    

    注:spark.yarn.app.container.log.dir仅在YARN集群模式下生效,local模式运行时该配置不会产生实际作用,但保持正确配置不影响程序运行。

  2. 修正代码语法错误:将master("local[3")改为master("local[3]"),完整的SparkSession初始化代码:

    spark = SparkSession.builder \
             .appName("Hello Spark") \
             .master("local[3]") \
             .getOrCreate()
    
  3. 重新执行程序:再次运行spark-submit命令,错误即可消除。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 11:55:22