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

Windows 11下Spark 3.0.0启动spark-shell报错求助

排查并解决Spark Shell启动报错问题

环境信息

  • 操作系统:Windows 11
  • 已下载组件及路径:
Spark -> C:\spark-3.0.0-bin-hadoop2.7 
Winutils -> C:\winutils 
Java -> C:\Program Files\Java\jdk-22.0.1

环境变量配置错误

当前环境变量映射完全错误:

HADOOP_HOME ='c:\\spark-3.0.0-bin-hadoop2.7' , 
JAVA_HOME = 'c:\\winutils', 
SPARK_HOME = 'c:\\Program Files\\Java\\jdk-22.0.1'

启动报错信息

运行spark-shell时触发以下错误:

C:\spark-3.0.0-bin-hadoop2.7\bin>spark-shell
    Exception in thread "main" java.lang.ExceptionInInitializerError
        at org.apache.spark.unsafe.array.ByteArrayMethods.<clinit>(ByteArrayMethods.java:54)
        at org.apache.spark.internal.config.package$.<init>(package.scala:1006)
        at org.apache.spark.internal.config.package$.<clinit>(package.scala)        at org.apache.spark.deploy.SparkSubmitArguments.$anonfun$loadEnvironmentArguments$3(SparkSubmitArguments.scala:157)
        at scala.Option.orElse(Option.scala:447)
        at org.apache.spark.deploy.SparkSubmitArguments.loadEnvironmentArguments(SparkSubmitArguments.scala:157)
        at org.apache.spark.deploy.SparkSubmitArguments.<init>(SparkSubmitArguments.scala:115)
        at org.apache.spark.deploy.SparkSubmit$$anon$2$$anon$3.<init>(SparkSubmit.scala:990)
        at org.apache.spark.deploy.SparkSubmit$$anon$2.parseArguments(SparkSubmit.scala:990)
        at org.apache.spark.deploy.SparkSubmit.doSubmit(SparkSubmit.scala:85)
        at org.apache.spark.deploy.SparkSubmit$$anon$2.doSubmit(SparkSubmit.scala:1007)
        at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:1016)        at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
Caused by: java.lang.IllegalStateException: java.lang.NoSuchMethodException: java.nio.DirectByteBuffer.<init>(long,int)
        at org.apache.spark.unsafe.Platform.<clinit>(Platform.java:62)
        ... 13 more
Caused by: java.lang.NoSuchMethodException: java.nio.DirectByteBuffer.<init>(long,int)
        at java.base/java.lang.Class.getConstructor0(Class.java:3784)
        at java.base/java.lang.Class.getDeclaredConstructor(Class.java:2955)
        at org.apache.spark.unsafe.Platform.<clinit>(Platform.java:55)
        ... 13 more

解决步骤

1. 修正环境变量映射

将环境变量修改为正确路径:

  • HADOOP_HOME:C:\winutils
  • JAVA_HOME:C:\Program Files\Java\jdk-22.0.1(后续需替换为兼容版本)
  • SPARK_HOME:C:\spark-3.0.0-bin-hadoop2.7

同时将%SPARK_HOME%\bin和%HADOOP_HOME%\bin添加到系统Path变量中。

2. 更换兼容的Java版本

Spark 3.0.0仅支持Java 8 ~ Java 11,当前使用的Java 22版本过高,导致DirectByteBuffer构造方法API不兼容。

  • 下载安装Java 8或Java 11版本
  • 更新JAVA_HOME指向新安装的Java路径,例如:C:\Program Files\Java\jdk1.8.0_381

3. 验证环境变量生效

打开新的命令提示符,执行以下命令确认路径正确:

echo %HADOOP_HOME%
echo %JAVA_HOME%
echo %SPARK_HOME%

4. 重新启动Spark Shell

在新的命令提示符中切换到Spark的bin目录,运行spark-shell即可正常启动。

内容的提问来源于stack exchange,提问作者sai krishna ragula

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 21:22:24