线程“main”中的异常 java.lang.IllegalAccessError:类 org.apache.spark.storage.StorageUtils$

Mar*_*ski 15 scala apache-spark sparkcore apache-spark-sql

您好,我尝试在本地笔记本电脑上运行 Spark。我在 intelijidea 中创建了一个 mvn 项目,在我的主类中我有一行如下所示,当我尝试运行一个项目时,我收到如下错误

 val spark = SparkSession.builder().master("local").getOrCreate()
Run Code Online (Sandbox Code Playgroud)

21/11/02 18:02:35 INFO BlockManagerMasterEndpoint:BlockManagerMasterEndpoint up 线程“main”中出现异常 java.lang.IllegalAccessError:类 org.apache.spark.storage.StorageUtils$ (在未命名模块 @0x34e9fd99 中)无法访问类 sun。 nio.ch.DirectBuffer(在模块 java.base 中),因为模块 java.base 不会将 sun.nio.ch 导出到 org.apache.spark.storage.StorageUtils$.(StorageUtils.scala:213) 处的未命名模块 @0x34e9fd99 org.apache.spark.storage.BlockManagerMasterEndpoint.(BlockManagerMasterEndpoint.scala:110) 在 org.apache.spark.SparkEnv$.$anonfun$create$9(SparkEnv.scala:348) 在 org.apache.spark.SparkEnv$.registerOrLookupEndpoint $1(SparkEnv.scala:287) 在 org.apache.spark.SparkEnv$.create(SparkEnv.scala:336) 在 org.apache.spark.SparkEnv$.createDriverEnv(SparkEnv.scala:191) 在 org.apache.spark .SparkContext.createSparkEnv(SparkContext.scala:27​​7) 在 org.apache.spark.SparkContext.(SparkContext.scala:460) 在 org.apache.spark.SparkContext$.getOrCreate(SparkContext.scala:2690) 在 org.apache.在 org.apache.spark.sql.SparkSession$Builder.getOrCreate(SparkSession. scala:943) 在 Main$.main(Main.scala:8) 在 Main.main(Main.scala)

我对 pom 的依赖

 <dependencies>
<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-core -->
<dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-core_2.13</artifactId>
    <version>3.2.0</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-sql -->
<dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-sql_2.13</artifactId>
    <version>3.2.0</version>

</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-hive -->
<dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-hive_2.11</artifactId>
    <version>2.1.3</version>
    <scope>provided</scope>

</dependency>
Run Code Online (Sandbox Code Playgroud)

知道如何解决这个问题吗?

Vzz*_*arr 12

在撰写本答案时,Spark 不支持 Java 17 - 仅支持 Java 8/11(来源: https: //spark.apache.org/docs/latest/)。

就我而言,卸载 Java 17 并安装 Java 8(例如 OpenJDK 8)解决了问题,我开始在笔记本电脑上使用 Spark。

更新:

Spark 在 Java 8/11/17、Scala 2.12/2.13、Python 3.7+ 和 R 3.5+ 上运行。